import { Block, BlockAdvancedSettings } from '../types/block';
import { Breakpoint } from '../types/responsive';
import { AnyObject } from '../types';
import { PayloadAction } from '@reduxjs/toolkit';
import { ContainerSettingsType } from '../blocks/container/types';

export interface BuilderState {
    content: Record<string, Block>;
    selectedBlockId: string | null;
    currentBreakpoint: Breakpoint;
    currentLocale: string;
}
export declare const builderSlice: import('@reduxjs/toolkit').Slice<BuilderState, {
    setContent: (state: BuilderState, action: PayloadAction<Record<string, Block>>) => void;
    setHeader: (state: BuilderState, action: PayloadAction<Block[]>) => void;
    clearContent: (state: BuilderState) => void;
    addBlock: (state: BuilderState, action: PayloadAction<{
        block: Block;
        index?: number;
        select?: boolean;
    }>) => void;
    addBlocks: (state: BuilderState, action: PayloadAction<{
        blocks: Block[];
        selectedBlockId: string | null;
        index?: number;
    }>) => void;
    updateBlock: (state: BuilderState, action: PayloadAction<{
        id: string;
        block: Partial<Block> | ((block: Block) => Block);
    }>) => void;
    duplicateBlock: (state: BuilderState, action: PayloadAction<{
        blockId: string;
        newId?: string;
        parentId?: string;
        select?: boolean;
    }>) => void;
    removeBlock: (state: BuilderState, action: PayloadAction<string>) => void;
    moveBlock: (state: BuilderState, action: PayloadAction<{
        sourceId: string;
        targetId: string;
        targetIndex: number;
    }>) => void;
    selectBlock: (state: BuilderState, action: PayloadAction<string>) => void;
    unselectBlock: (state: BuilderState) => void;
    setCurrentBreakpoint: (state: BuilderState, action: PayloadAction<Breakpoint>) => void;
    setCurrentLanguage: (state: BuilderState, action: PayloadAction<string>) => void;
    setBlockSettings: (state: BuilderState, action: PayloadAction<{
        id: string;
        settings: AnyObject;
    }>) => void;
    setBlockSettingsValueByKey: (state: BuilderState, action: PayloadAction<{
        id: string;
        values: {
            key: string;
            value: unknown;
        }[];
    }>) => void;
    setSelectedBlockSettingsValueByKey: (state: BuilderState, action: PayloadAction<{
        key: string;
        value: unknown;
    }[]>) => void;
    setBlockAdvancedSettings: (state: BuilderState, action: PayloadAction<{
        id: string;
        settings: AnyObject;
    }>) => void;
    setBlockAdvancedSettingsValueByKey: (state: BuilderState, action: PayloadAction<{
        id: string;
        values: {
            key: string;
            value: unknown;
        }[];
    }>) => void;
    setSelectedBlockAdvancedSettingsValueByKey: (state: BuilderState, action: PayloadAction<{
        key: string;
        value: unknown;
    }[]>) => void;
    duplicateTab: (state: BuilderState, action: PayloadAction<{
        blockId: string;
        parentId?: string;
    }>) => void;
    duplicateTabItem: (state: BuilderState, action: PayloadAction<{
        blockId: string;
        tabIndex: number;
    }>) => void;
    removeTabItem: (state: BuilderState, action: PayloadAction<{
        blockId: string;
        tabIndex: number;
    }>) => void;
    copyToClipboard: (state: BuilderState, action: PayloadAction<{
        blockId: string;
    }>) => void;
    insertFromClipboard: (state: BuilderState, action: PayloadAction<{
        data: Block;
        blockId: string;
        containerSettings: {
            settings: ContainerSettingsType;
            advancedSettings: BlockAdvancedSettings;
        };
    }>) => void;
    getClosestContainerBlock: (state: BuilderState, action: PayloadAction<{
        blockId: string;
        containerSettings: {
            settings: ContainerSettingsType;
            advancedSettings: BlockAdvancedSettings;
        };
        data?: Block;
    }>) => any;
}, "builder", "builder", import('@reduxjs/toolkit').SliceSelectors<BuilderState>>;
export declare const setContent: import('@reduxjs/toolkit').ActionCreatorWithPayload<Record<string, Block>, "builder/setContent">, setHeader: import('@reduxjs/toolkit').ActionCreatorWithPayload<Block[], "builder/setHeader">, clearContent: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"builder/clearContent">, addBlock: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    block: Block;
    index?: number;
    select?: boolean;
}, "builder/addBlock">, addBlocks: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    blocks: Block[];
    selectedBlockId: string | null;
    index?: number;
}, "builder/addBlocks">, updateBlock: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    id: string;
    block: Partial<Block> | ((block: Block) => Block);
}, "builder/updateBlock">, duplicateBlock: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    blockId: string;
    newId?: string;
    parentId?: string;
    select?: boolean;
}, "builder/duplicateBlock">, removeBlock: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, "builder/removeBlock">, moveBlock: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    sourceId: string;
    targetId: string;
    targetIndex: number;
}, "builder/moveBlock">, selectBlock: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, "builder/selectBlock">, unselectBlock: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"builder/unselectBlock">, setCurrentBreakpoint: import('@reduxjs/toolkit').ActionCreatorWithPayload<Breakpoint, "builder/setCurrentBreakpoint">, setCurrentLanguage: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, "builder/setCurrentLanguage">, setBlockSettings: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    id: string;
    settings: AnyObject;
}, "builder/setBlockSettings">, setBlockSettingsValueByKey: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    id: string;
    values: {
        key: string;
        value: unknown;
    }[];
}, "builder/setBlockSettingsValueByKey">, setSelectedBlockSettingsValueByKey: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    key: string;
    value: unknown;
}[], "builder/setSelectedBlockSettingsValueByKey">, setBlockAdvancedSettings: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    id: string;
    settings: AnyObject;
}, "builder/setBlockAdvancedSettings">, setBlockAdvancedSettingsValueByKey: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    id: string;
    values: {
        key: string;
        value: unknown;
    }[];
}, "builder/setBlockAdvancedSettingsValueByKey">, setSelectedBlockAdvancedSettingsValueByKey: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    key: string;
    value: unknown;
}[], "builder/setSelectedBlockAdvancedSettingsValueByKey">, duplicateTab: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    blockId: string;
    parentId?: string;
}, "builder/duplicateTab">, duplicateTabItem: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    blockId: string;
    tabIndex: number;
}, "builder/duplicateTabItem">, removeTabItem: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    blockId: string;
    tabIndex: number;
}, "builder/removeTabItem">, copyToClipboard: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    blockId: string;
}, "builder/copyToClipboard">, insertFromClipboard: import('@reduxjs/toolkit').ActionCreatorWithPayload<{
    data: Block;
    blockId: string;
    containerSettings: {
        settings: ContainerSettingsType;
        advancedSettings: BlockAdvancedSettings;
    };
}, "builder/insertFromClipboard">;
//# sourceMappingURL=builder-slice.d.ts.map