export declare type LayoutTypes = 'graphin-force' | 'force' | 'grid' | 'dagre' | 'circular' | 'concentric' | 'radial'; export interface LayoutConfig { type?: LayoutTypes; options?: { linkDistance?: number; nodeStrength?: number; edgeStrength?: number; preventOverlap?: boolean; nodeSize?: number[] | number | ((d: any) => number); nodeSpacing?: number; sortBy?: string; clustering?: boolean; rankdir?: 'TB' | 'BT' | 'LR' | 'RL'; align?: 'UL' | 'UR' | 'DL' | 'DR' | undefined; nodesep?: number; ranksep?: number; minNodeSpacing?: number; equidistant?: boolean; rows?: number; cols?: number; radius?: number; divisions?: number; ordering?: null | 'topology' | 'degree'; unitRadius?: number; focusNode?: string; stiffness?: number; repulsion?: number; damping?: number; }; } export interface NumMappingCfg { field: string; type: string; scale: { range: number[]; domain: number[]; }; [key: string]: any; } export interface CategoryMappingCfg { field: string; type: string; scale: { range: string[] | number[]; domain: string[] | number[]; }; [key: string]: any; } export declare type NodeTypes = 'point' | 'rect' | 'donut'; export declare type EdgeTypes = 'line' | 'orth' | 'round' | 'smooth'; export interface NodeSpec { mark: NodeTypes; encoding: { size: NumMappingCfg; color: CategoryMappingCfg; label: { field: string; showlabel?: Boolean; }; [key: string]: any; }; } export interface EdgeSpec { mark: string; encoding: { type: EdgeTypes; size: NumMappingCfg; color: CategoryMappingCfg; label: { field: string; showlabel?: Boolean; }; [key: string]: any; }; }