import { Edge, Node } from '@xyflow/react';
interface UseLayoutOperationsProps {
    nodes: Node[];
    edges: Edge[];
    selectedNodes: Node[];
    layoutHidden: boolean;
    calculateLayout: (nodes: Node[], edges: Edge[], selectedNodes: Node[], signal: AbortSignal) => Promise<{
        nodes: Node[];
        edges: Edge[];
    }>;
    updateNodes?: (nodes: Node[]) => void;
    updateEdges?: (edges: Edge[]) => void;
    setLayoutInProgress: (inProgress: boolean) => void;
    setNodeSpacing: (spacing: number) => void;
    setLayerSpacing: (spacing: number) => void;
}
export declare function useLayoutOperations({ nodes, edges, selectedNodes, layoutHidden, calculateLayout, updateNodes, updateEdges, setLayoutInProgress, setNodeSpacing, setLayerSpacing }: UseLayoutOperationsProps): {
    applyLayout: (inputNodes?: Node[], inputEdges?: Edge[]) => Promise<{
        nodes: Node[];
        edges: Edge[];
    }>;
    pendingSpacingUpdateRef: import("react").RefObject<{
        node?: number;
        layer?: number;
    } | null>;
};
export {};
