import { StudioNode, WebsiteSchema } from './types';
interface StudioState {
    website: WebsiteSchema | null;
    activePageId: string | null;
    past: WebsiteSchema[];
    future: WebsiteSchema[];
    undo: () => void;
    redo: () => void;
    selectedNodeIds: string[];
    hoveredNodeId: string | null;
    componentPicker: {
        isOpen: boolean;
        action: 'before' | 'after' | 'inside' | 'replace' | null;
        targetId: string | null;
    };
    openComponentPicker: (action: 'before' | 'after' | 'inside' | 'replace', targetId: string) => void;
    closeComponentPicker: () => void;
    viewContext: {
        type: 'PAGE' | 'COMPONENT';
        id: string | null;
    };
    clipboard: StudioNode[];
    copyNodes: (nodeIds: string[]) => void;
    pasteNodes: (targetId: string | null, position?: 'inside' | 'after') => void;
    duplicateNodes: (nodeIds: string[]) => void;
    initStudio: (schema: WebsiteSchema) => void;
    setActivePage: (pageId: string) => void;
    setViewContext: (type: 'PAGE' | 'COMPONENT', id: string | null) => void;
    setSelectedNodes: (ids: string[]) => void;
    toggleNodeSelection: (id: string, multi: boolean) => void;
    setHoveredNode: (id: string | null) => void;
    addNode: (node: StudioNode, parentId?: string | null, index?: number) => void;
    removeNodes: (nodeIds: string[]) => void;
    moveNode: (nodeId: string, targetParentId: string | null, index?: number) => void;
    moveNodes: (nodeIds: string[], targetParentId: string | null, index?: number) => void;
    updateNodeProps: (nodeId: string, props: Record<string, any>) => void;
    updateNodeId: (oldId: string, newId: string) => void;
    updateDesignSystemTokens: (tokens: Record<string, string | number>) => void;
    insertNodeRelative: (node: StudioNode, targetId: string, position: 'before' | 'after' | 'inside') => void;
    replaceNode: (targetId: string, newNode: StudioNode) => void;
    addPage: (slug: string, title: string) => void;
    updatePage: (id: string, slug: string, title: string) => void;
    duplicatePage: (id: string) => void;
    removePage: (id: string) => void;
}
export declare const useStudioStore: import('zustand').UseBoundStore<import('zustand').StoreApi<StudioState>>;
export {};
