import type { Edge, Node, Viewport } from '../xyflow/react.ts';
import type { CanvasLevel } from '../types/canvas.types';
import { type TransitionState } from './animatedViewportManager';
interface CanvasStore {
    canvasStack: Record<string, CanvasLevel>;
    currentPath: string[];
    transitionState: TransitionState;
    initializeCanvas: () => void;
    initializeWithData: (canvases: Record<string, CanvasLevel>, initialPath?: string[]) => void;
    navigateToCanvas: (targetCanvasId: string, sourceViewport?: Viewport, animated?: boolean) => Promise<void>;
    navigateToDepth: (depth: number, animated?: boolean) => Promise<void>;
    drillIntoNode: (nodeId: string, animated?: boolean) => Promise<void>;
    navigateToSiblingCanvas: (targetCanvasId: string, animated?: boolean) => Promise<void>;
    addNode: (nodeType: string, position?: {
        x: number;
        y: number;
    }) => string;
    addNodeToCanvas: (node: Node) => void;
    createChildCanvas: (parentNodeId: string, childCanvasId: string, name: string) => void;
    removeNode: (nodeId: string) => void;
    removeEdge: (edgeId: string) => void;
    updateNode: (node: Node) => void;
    updateNodes: (nodes: Node[]) => void;
    updateEdges: (edges: Edge[]) => void;
    updateSelection: (nodeIds: string[], edgeIds: string[]) => void;
    updateViewport: (viewport: Viewport, canvasId?: string) => void;
    updateTransitionState: (state: Partial<TransitionState>) => void;
    getCurrentCanvas: () => CanvasLevel | undefined;
    getBreadcrumbs: () => {
        id: string;
        name: string;
    }[];
    getNodeById: (nodeId: string, canvasId?: string) => Node | undefined;
}
export declare const selectCurrentCanvas: (state: CanvasStore) => CanvasLevel | undefined;
export declare const selectPreviousCanvas: (state: CanvasStore) => CanvasLevel | undefined;
export declare const selectBreadcrumbs: ((state: CanvasStore) => {
    id: string;
    name: string;
}[]) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: string[], resultFuncArgs_1: Record<string, CanvasLevel<Record<string, unknown>, Record<string, unknown>>>) => {
        id: string;
        name: string;
    }[];
    memoizedResultFunc: ((resultFuncArgs_0: string[], resultFuncArgs_1: Record<string, CanvasLevel<Record<string, unknown>, Record<string, unknown>>>) => {
        id: string;
        name: string;
    }[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => {
        id: string;
        name: string;
    }[];
    dependencies: [(state: CanvasStore) => string[], (state: CanvasStore) => Record<string, CanvasLevel<Record<string, unknown>, Record<string, unknown>>>];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    memoize: typeof import("reselect").weakMapMemoize;
    argsMemoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCanvasActions: (state: CanvasStore) => {
    navigateToCanvas: (targetCanvasId: string, sourceViewport?: Viewport, animated?: boolean) => Promise<void>;
    navigateToDepth: (depth: number, animated?: boolean) => Promise<void>;
    drillIntoNode: (nodeId: string, animated?: boolean) => Promise<void>;
    navigateToSiblingCanvas: (targetCanvasId: string, animated?: boolean) => Promise<void>;
    addNode: (nodeType: string, position?: {
        x: number;
        y: number;
    }) => string;
    addNodeToCanvas: (node: Node) => void;
    createChildCanvas: (parentNodeId: string, childCanvasId: string, name: string) => void;
    updateNode: (node: Node) => void;
    removeNode: (nodeId: string) => void;
    updateNodes: (nodes: Node[]) => void;
    updateEdges: (edges: Edge[]) => void;
    updateSelection: (nodeIds: string[], edgeIds: string[]) => void;
    updateViewport: (viewport: Viewport, canvasId?: string) => void;
    updateTransitionState: (state: Partial<TransitionState>) => void;
};
export declare const selectTransitionState: (state: CanvasStore) => TransitionState;
export declare const selectCanvasStack: (state: CanvasStore) => Record<string, CanvasLevel>;
export declare const selectInitializeWithData: (state: CanvasStore) => (canvases: Record<string, CanvasLevel>, initialPath?: string[]) => void;
export declare const selectCurrentPath: (state: CanvasStore) => string[];
export declare const selectCurrentPathLength: (state: CanvasStore) => number;
export declare const selectInitializeCanvas: (state: CanvasStore) => () => void;
export declare const selectNavigateToCanvas: (state: CanvasStore) => (targetCanvasId: string, sourceViewport?: Viewport, animated?: boolean) => Promise<void>;
export declare const selectNavigateToDepth: (state: CanvasStore) => (depth: number, animated?: boolean) => Promise<void>;
export declare const selectNavigateToSiblingCanvas: (state: CanvasStore) => (targetCanvasId: string, animated?: boolean) => Promise<void>;
export declare const selectDrillIntoNode: (state: CanvasStore) => (nodeId: string, animated?: boolean) => Promise<void>;
export declare const selectAddNode: (state: CanvasStore) => (nodeType: string, position?: {
    x: number;
    y: number;
}) => string;
export declare const selectAddNodeToCanvas: (state: CanvasStore) => (node: Node) => void;
export declare const selectUpdateNode: (state: CanvasStore) => (node: Node) => void;
export declare const selectRemoveNode: (state: CanvasStore) => (nodeId: string) => void;
export declare const selectUpdateNodes: (state: CanvasStore) => (nodes: Node[]) => void;
export declare const selectGetNodeById: (state: CanvasStore) => (nodeId: string, canvasId?: string) => Node | undefined;
export declare const selectUpdateEdges: (state: CanvasStore) => (edges: Edge[]) => void;
export declare const selectRemoveEdge: (state: CanvasStore) => (edgeId: string) => void;
export declare const selectCreateChildCanvas: (state: CanvasStore) => (parentNodeId: string, childCanvasId: string, name: string) => void;
export declare const selectUpdateSelection: (state: CanvasStore) => (nodeIds: string[], edgeIds: string[]) => void;
export declare const selectUpdateViewport: (state: CanvasStore) => (viewport: Viewport, canvasId?: string) => void;
export declare const selectUpdateTransitionState: (state: CanvasStore) => (state: Partial<TransitionState>) => void;
export declare const selectGetBreadcrumbs: (state: CanvasStore) => () => {
    id: string;
    name: string;
}[];
export declare const useCanvasStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<CanvasStore>, "setState" | "devtools"> & {
    setState(partial: CanvasStore | Partial<CanvasStore> | ((state: CanvasStore) => CanvasStore | Partial<CanvasStore>), replace?: false | undefined, action?: (string | {
        [x: string]: unknown;
        [x: number]: unknown;
        [x: symbol]: unknown;
        type: string;
    }) | undefined): void;
    setState(state: CanvasStore | ((state: CanvasStore) => CanvasStore), replace: true, action?: (string | {
        [x: string]: unknown;
        [x: number]: unknown;
        [x: symbol]: unknown;
        type: string;
    }) | undefined): void;
    devtools: {
        cleanup: () => void;
    };
}>;
export {};
//# sourceMappingURL=canvasStore.d.ts.map