import { NxId, TopologyEvent } from "../types/Common.types"; import { TopologyNode } from "../types/topology/Node.types"; import { TopologyLink } from "../types/topology/Link.types"; import { CSSProperties } from "react"; export interface TopologyData { nodes: Array<{ id: NxId; [x: string]: any; }>; links: Array<{ source: NxId; target: NxId; [x: string]: any; }>; } export interface NextContainerProps { topologyConfig?: NxTopologyConfig; eventHandlers?: Object; topologyData?: TopologyData; style?: CSSProperties; callback?: (nxApp: any) => any; afterDraw?: () => void; } export declare type NxTopologyConfig = Partial; export declare type NxTopology = { adaptive: boolean; autoLayout: boolean; currentSceneName: string; dataProcessor: string; enableGradualScaling: boolean; enableSmartLabel: boolean; enableSmartNode: boolean; height: number; width: number; identityKey: string; linkSetInstanceClass: string; nodeDraggable: object; nodeInstanceClass: any; nodeSetInstanceClass: any; padding: number; scalable: boolean; scenes: any; scenesMap: any; selectedNodes: any; showIcon: boolean; showNavigation: boolean; stage: any; status: string; supportMultipleLink: boolean; theme: string; tooltipManager: any; tooltipManagerConfig: any; viewSettingPanel: any; nodeConfig: object; linkConfig: object; addNodeSet: (nodeSet: TopologyNode) => TopologyNode; addNode: (node: TopologyNode) => void; addLink: (node: TopologyLink) => void; adaptToContainer: () => void; eachNode: (callback: (node: TopologyNode) => void) => void; eachLink: (callback: (link: TopologyLink) => void) => void; getNode: (id: NxId) => TopologyNode; getLink: (id: NxId) => TopologyLink; getData: () => TopologyData; layoutType: (inValue?: string) => void | string; linkInstanceClass: (inValue?: string) => void | string; setData: (data: TopologyData) => void; insertData: (data: TopologyData) => void; stageScale: (inValue?: any) => void | number; removeNode: (nodeId: NxId | TopologyNode) => void; removeLink: (linkId: NxId | TopologyLink) => void; zoom: (value: number) => void; zoomByNodes: (nodes: TopologyNode[], callback?: any, context?: any) => void; resize: (width: number, height: number) => void; move: (x: number, y: number, duration?: number) => void; fit: () => void; clear: () => void; adjustLayout: () => void; off: (evt: string) => void; on: (evt: string, handler: TopologyEvent) => void; }; export interface EventHandlers extends StageEvents, NodeEvents, LinkEvents, TopologyEvents { } declare type TopologyEvents = Partial<{ afterSetData: TopologyEvent; beforeSetData: TopologyEvent; fit: TopologyEvent; insertData: TopologyEvent; ready: TopologyEvent; resizeStage: TopologyEvent; topologyGenerated: TopologyEvent; }>; declare type StageEvents = Partial<{ clickStage: TopologyEvent; down: TopologyEvent; dragStage: TopologyEvent; dragStageStart: TopologyEvent; dragStageEnd: TopologyEvent; enter: TopologyEvent; esc: TopologyEvent; left: TopologyEvent; right: TopologyEvent; pressA: TopologyEvent; pressF: TopologyEvent; pressM: TopologyEvent; pressR: TopologyEvent; pressS: TopologyEvent; pressStage: TopologyEvent; space: TopologyEvent; up: TopologyEvent; zoomend: TopologyEvent; zooming: TopologyEvent; }>; declare type NodeEvents = Partial<{ pressNode: TopologyEvent; clickNode: TopologyEvent; enterNode: TopologyEvent; leaveNode: TopologyEvent; dragNodeStart: TopologyEvent; dragNode: TopologyEvent; dragNodeEnd: TopologyEvent; selectNode: TopologyEvent; }>; declare type LinkEvents = Partial<{ pressLink: TopologyEvent; clickLink: TopologyEvent; enterLink: TopologyEvent; leaveLink: TopologyEvent; }>; export {};