import { IGanttChartDatum, IGanttChart, ChartSide, IGanttChartEdge, LogicalArcGraph, IProcessedGraphNode, WCRectangle, GraphNodeId } from '@adam-sv/arc'; import { ScaleBand, ScaleLinear } from 'd3'; export interface IGanttChartLogic { data: IGanttChartDatum[]; axisSettings: IGanttChart['axisSettings']; barOpts: IGanttChart['barOpts']; zoomSettings: IGanttChart['zoomSettings']; minContentHeight?: number; valueDomain: IGanttChart['valueDomain']; edges?: IGanttChartEdge[]; } export declare const useGanttChartLogic: ({ data, axisSettings, barOpts, zoomSettings, minContentHeight, valueDomain, edges, }: IGanttChartLogic) => { chartState: { forceRender: () => void; sizes: { axis: { canResizeSide: (side: 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: 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; }; bandScale: ScaleBand; linearScale: ScaleLinear; numberTicks: number; locatedData: { position: { x: number; y: number; }; size: { width: number; height: number; }; className: string | undefined; datum: IGanttChartDatum; label: string; id: NodeIdType; }[]; setMouseInfo: import("react").Dispatch; } | undefined>>; graph: LogicalArcGraph; mouseInfo: { left: number; top: number; triggerPosition: { top: number; left: number; }; horizontalSpace: number; verticalSpace: number; bar: IGanttChartDatum; } | undefined; getPosition: (node: IProcessedGraphNode) => WCRectangle; };