import { defaultNodeContentRenderer, defaultNodeChildrenRenderer } from './NodeBase'; import type { ScaleLinear } from 'd3'; import type { GraphNodeId, IGraphEdge, IProcessedGraphNode } from '@adam-sv/arc'; import type { IGraphProps, IGraphLayoutOptions, IGraphRenderContext } from '.'; import type { IGraphDefaults } from './types'; export declare function useGraphLogic({ className, scrollControls, zoomControls, edgeMode, forceEdgesOnTop, edgeSpacing, edgeCreation, connectionActions, gridSize, // represents gap between lines or dots gridLineOrDotThickness, gridStyle, graph, hideScrollBars, minHeight, mode, layoutOptions: { padding, childPadding, defaultNodeSize, inputOutputHeight, inputOutputWidth, contentHeight, connectionTargetSize, }, renderedLayout, htmlNodeContentRenderer, svgNodeContentRenderer, selectionActions, selectedEdges, selectedNodeIds, debug, }: IGraphProps): { boundingRect: DOMRect; chartState: { forceRender: () => void; sizes: { axis: { canResizeSide: (side: import("@adam-sv/arc").ChartSide) => boolean; sizes: Record; setters: Record>>; constraints: Record; }; dom: { container: DOMRect; content: { width: number; height: number; }; }; svg: { xScaleFactor: number; yScaleFactor: number; xRange: number; yRange: number; }; }; refs: import("../Base/logic").ComponentRefs; scroll: { scrollValues: { scrollLeft: number; setScrollLeft: (left: number) => void; scrollTop: number; setScrollTop: (top: number) => void; }; scrollHandlers: Record unknown>; }; zoom: { currentZoom: number; setZoom: (zoom: number) => void; axes: "x" | "y" | "xy" | undefined; min: number; max: number; zoomIn: (exponent?: number) => void; zoomOut: (exponent?: number) => void; }; helpers: { canResizeSide: (side: import("@adam-sv/arc").ChartSide) => boolean; getDOMPosition: (component: import("@adam-sv/arc").ChartComponent, fitContent?: boolean) => Partial>; getDOMSize: (component: import("@adam-sv/arc").ChartComponent, fitContent?: boolean) => { width: number; height: number; }; getSVGSize: (component: import("@adam-sv/arc").ChartComponent, fitContent?: boolean) => { width: number; height: number; viewBox?: string; }; }; styles: Record<"content" | "container", import("react").CSSProperties>; props: import("@adam-sv/arc").IChartConfiguration; }; childPadding: number; className: string | undefined; debug: boolean | undefined; edgeCreation: import("./InteractionManager/NodeInteractionManager").IConnectionCreationLogic | undefined; edgeMode: import("@adam-sv/arc").IEdgeRouterMode; edgesOnTop: boolean; edgeSpacing: number | undefined; gridOptions: { gridSize: number; gridThickness: number; gridStyle: "grid" | "dot-grid" | "none"; }; getRenderedPosition: (node: IProcessedGraphNode) => import("@adam-sv/arc").WCRectangle; graph: import("@adam-sv/arc").LogicalArcGraph; graphContext: IGraphRenderContext; hideScrollBars: boolean | undefined; mode: import("./types").IGraphStrategy; nodeChildrenRenderer: typeof defaultNodeChildrenRenderer; nodeContentRenderer: import("./types").IGraphNodeContentRenderer | typeof defaultNodeContentRenderer; padding: number; placements: Map>; topLevelNodes: IProcessedGraphNode[]; xTicks: number[]; yTicks: number[]; getNodeContentPosition: ((node: IProcessedGraphNode) => import("@adam-sv/arc").WCRectangle) | undefined; getNodePosition: (node: IProcessedGraphNode) => import("@adam-sv/arc").WCRectangle; formattedConnectionActions: { onClick: (...args: any[]) => any[]; onContextMenu?: ((e: React.MouseEvent, edge: IGraphEdge) => unknown) | undefined; onHover?: ((e: React.MouseEvent, edge: IGraphEdge) => unknown) | undefined; onUnhover?: ((e: React.MouseEvent, edge: IGraphEdge) => unknown) | undefined; }; getEdgeClassName: (edge: IGraphEdge) => "selected" | undefined; }; export declare function getDomains({ left, top, right, bottom }: DOMRect, padding: number): { xDomain: [number, number]; yDomain: [number, number]; coordinateSpace: { width: number; height: number; }; }; export declare function getGridTicks(range: [number, number], gridSize: number): number[]; export declare function getScalarInScale(scalar: number, scale: ScaleLinear): number; export declare function getZoomControls(zoomControls?: Partial): IGraphDefaults["ZOOM_DEFAULTS"]; export declare const GRAPH_DEFAULTS: IGraphDefaults; export declare const defaultLayoutOptions: IGraphLayoutOptions; export declare function preventDefault(e: { preventDefault: () => unknown; }): void; export declare function eventHasContinuationKeyPressed(e: React.MouseEvent): boolean; export declare function eventHasModifierKeyPressed(e: React.MouseEvent): boolean;