import { Node } from '@xyflow/react';
import { LayoutAlgorithm, LayoutDirection, LayoutEngine, ParentResizingOptions } from '../context/LayoutContext';
interface UseLayoutStateProps {
    initialDirection?: LayoutDirection;
    initialAlgorithm?: LayoutAlgorithm;
    initialAutoLayout?: boolean;
    initialPadding?: number;
    initialSpacing?: {
        node?: number;
        layer?: number;
    };
    initialNodeDimensions?: {
        width?: number;
        height?: number;
    };
    initialParentResizingOptions?: Partial<ParentResizingOptions>;
    includeHidden?: boolean;
    layoutEngines?: Record<string, LayoutEngine>;
}
export declare function useLayoutState({ initialDirection, initialAlgorithm, initialAutoLayout, initialPadding, initialSpacing, initialNodeDimensions, initialParentResizingOptions, includeHidden, layoutEngines: customEngines, }: UseLayoutStateProps): {
    direction: LayoutDirection;
    algorithm: LayoutAlgorithm;
    autoLayout: boolean;
    layoutInProgress: boolean;
    layoutHidden: boolean;
    layoutEngines: Record<string, LayoutEngine>;
    layoutEngineOptions: Record<string, any>;
    padding: number;
    nodeSpacing: number;
    layerSpacing: number;
    nodeWidth: number;
    nodeHeight: number;
    parentResizingOptions: ParentResizingOptions;
    selectedNodes: Node[];
    setDirection: import("react").Dispatch<import("react").SetStateAction<LayoutDirection>>;
    setAlgorithm: import("react").Dispatch<import("react").SetStateAction<LayoutAlgorithm>>;
    setAutoLayout: import("react").Dispatch<import("react").SetStateAction<boolean>>;
    setLayoutInProgress: import("react").Dispatch<import("react").SetStateAction<boolean>>;
    setLayoutHidden: import("react").Dispatch<import("react").SetStateAction<boolean>>;
    setLayoutEngines: import("react").Dispatch<import("react").SetStateAction<Record<string, LayoutEngine>>>;
    setLayoutEngineOptions: import("react").Dispatch<import("react").SetStateAction<Record<string, any>>>;
    setPadding: import("react").Dispatch<import("react").SetStateAction<number>>;
    setNodeSpacing: import("react").Dispatch<import("react").SetStateAction<number>>;
    setLayerSpacing: import("react").Dispatch<import("react").SetStateAction<number>>;
    setNodeWidth: import("react").Dispatch<import("react").SetStateAction<number>>;
    setNodeHeight: import("react").Dispatch<import("react").SetStateAction<number>>;
    setParentResizingOptionsState: import("react").Dispatch<import("react").SetStateAction<ParentResizingOptions>>;
    setSelectedNodes: import("react").Dispatch<import("react").SetStateAction<Node[]>>;
};
export {};
