Files
openclaw 0a5f6a8047 Initial commit: Lan-manager project code
- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs

Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
2026-04-20 00:52:58 +08:00

49 lines
1.7 KiB
TypeScript

import { Matrix, Model, IndexMap, Edge, Node, OutNode, Degree, NodeMap } from '../layout/types';
export declare const getEdgeTerminal: (edge: Edge, type: 'source' | 'target') => any;
export declare const getDegree: (n: number, nodeIdxMap: IndexMap, edges: Edge[] | null) => Degree[];
export declare const getDegreeMap: (nodes: Node[], edges: Edge[] | null) => {
[id: string]: Degree;
};
export declare const floydWarshall: (adjMatrix: Matrix[]) => Matrix[];
export declare const getAdjMatrix: (data: Model, directed: boolean) => Matrix[];
/**
* scale matrix
* @param matrix [ [], [], [] ]
* @param ratio
*/
export declare const scaleMatrix: (matrix: Matrix[], ratio: number) => Matrix[];
/**
* depth first traverse, from leaves to root, children in inverse order
* if the fn returns false, terminate the traverse
*/
export declare const traverseTreeUp: <T extends {
children?: T[] | undefined;
}>(data: T, fn: (param: T) => boolean) => void;
/**
* calculate the bounding box for the nodes according to their x, y, and size
* @param nodes nodes in the layout
* @returns
*/
export declare const getLayoutBBox: (nodes: OutNode[]) => {
minX: number;
minY: number;
maxX: number;
maxY: number;
};
/**
* 获取节点集合的平均位置信息
* @param nodes 节点集合
* @returns 平局内置
*/
export declare const getAvgNodePosition: (nodes: OutNode[]) => {
x: number;
y: number;
};
export declare const getCoreNodeAndRelativeLeafNodes: (type: 'leaf' | 'all', node: Node, edges: Edge[], nodeClusterBy: string, degreesMap: {
[id: string]: Degree;
}, nodeMap: NodeMap) => {
coreNode: Node;
relativeLeafNodes: Node[];
sameTypeLeafNodes: Node[];
};