import { AttributeValue, GraphNode, GraphValue, ModelGraph } from '@wetron/common/ir'; type NodeData = { opType: string; name: string; inputs: readonly string[]; outputs: readonly string[]; attributes: Readonly>; }; type GraphOperationNodeData = NodeData & { graphNode: GraphNode; weightInputs: readonly { slot: number; label: string; name: string; shape: readonly number[]; dtype: string; }[]; }; type IoNodeData = NodeData & { opType: 'Input' | 'Output'; graphValue: GraphValue; shape: readonly number[] | null; dtype: string | null; }; type GraphNodeData = GraphOperationNodeData | IoNodeData; type FlowNodeBase = { id: string; position: { x: number; y: number; }; initialWidth: number; initialHeight: number; }; type GraphFlowNode = FlowNodeBase & { type: 'graphNode'; data: GraphOperationNodeData; }; type IoFlowNode = FlowNodeBase & { type: 'ioNode'; data: IoNodeData; }; type FlowNode = GraphFlowNode | IoFlowNode; type FlowEdge = { id: string; source: string; target: string; type: 'modelEdge'; data: { readonly tensorName: string; readonly sourceOpType: string; readonly sourceNodeName: string; readonly targetOpType: string; readonly targetNodeName: string; readonly points?: readonly { x: number; y: number; }[]; }; }; declare const WEIGHT_ROW_LIMIT = 8; type LayoutDirection = 'TB' | 'LR'; declare function filterGraph(graph: ModelGraph, query: string): ReadonlySet; declare function modelGraphToFlow(graph: ModelGraph, options?: { rankdir?: LayoutDirection; }): { nodes: FlowNode[]; edges: FlowEdge[]; }; export { type FlowEdge, type FlowNode, type GraphFlowNode, type GraphNodeData, type GraphOperationNodeData, type IoFlowNode, type IoNodeData, type LayoutDirection, WEIGHT_ROW_LIMIT, filterGraph, modelGraphToFlow };