import React from 'react'; import { PortWidget } from './components/ports'; import { ZoomControls } from './components/zoom-controls'; import { RetractingPort } from './components/ports/retracting'; import { BlockTray } from './components/block-tray'; import { AbstractWidgetFactory } from './models/abstract-widget-factory'; import { InfiniteCanvasNode, InfiniteCanvasPath, InfiniteCanvasPosition } from './types/canvas'; export * from './types'; export * from './components/nodes'; export { AbstractWidgetFactory, ZoomControls, RetractingPort, BlockTray, PortWidget }; export interface Block { label?: string; blockType?: string; content?: any; extras?: any; } export interface InfiniteCanvasProps { className?: string; editable?: boolean; onDrop?: (position: InfiniteCanvasPosition, data: any) => void; nodes?: InfiniteCanvasNode[]; paths?: InfiniteCanvasPath[]; onNodeUpdate?: (node: InfiniteCanvasNode) => void; onNodeRemove?: (node: InfiniteCanvasNode) => void; onPathCreate?: (path: InfiniteCanvasPath) => void; onPathUpdate?: (path: InfiniteCanvasPath) => void; onPathRemove?: (path: InfiniteCanvasPath) => void; onNodesChanged?: (nodes: InfiniteCanvasNode[]) => void; onPathsChanged?: (paths: InfiniteCanvasPath[]) => void; assets?: { [key: string]: JSX.Element; }; factories?: Array; snapToGrid?: boolean; grid?: { width: number; height: number; divisions: number; }; offset?: { x: number; y: number; }; contextMenu?: { label?: any; icon?: any; onClick?: (type: "node" | "path", id: string) => void; }[]; zoom?: number; onViewportChanged?: (viewport: { zoom: number; offset: { x: number; y: number; }; }) => void; } export declare const BaseInfiniteCanvas: React.FC; export declare const InfiniteCanvas: import("styled-components").StyledComponent, any, {}, never>;