import { PayloadAction } from "@reduxjs/toolkit";
import { DeviceType, NodeId, PageComponentDefinition } from "../../../data/types";
import { CmdKLocation } from "../../../wysiwyg/cmd-k/types";
export interface AIGeneration {
    context: string;
    definitions: PageComponentDefinition[];
    prompt: string;
}
export interface ContentReplacementState {
    [id: NodeId]: "loading" | "fading-out";
}
export interface UISettingsState {
    panelsVisible: boolean;
    darkModeEnabled: boolean;
    editorZoom: number;
    isAdminEditing: boolean;
    deviceType: DeviceType;
    aiGenerations: AIGeneration[];
    editorMode: "design" | "code";
    addElementCategoryOpenState: {
        [category: string]: boolean;
    };
    contentReplacementState: ContentReplacementState;
    cmdKLocation: CmdKLocation | null;
}
export declare const uiSettingsSlice: import("@reduxjs/toolkit").Slice<UISettingsState, {
    togglePanelsVisibility: (state: import("immer/dist/internal").WritableDraft<UISettingsState>) => void;
    updateDarkModeEnabled: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<boolean>) => void;
    updateEditorZoom: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<number>) => void;
    updateIsAdminEditing: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<boolean>) => void;
    updateDeviceType: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<UISettingsState["deviceType"]>) => void;
    updateEditorMode: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<"design" | "code">) => void;
    addAIGeneration: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<AIGeneration>) => void;
    bulkUpdateAddElementCategoryOpenState: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: {
        payload: {
            [category: string]: boolean;
        };
        type: string;
    }) => void;
    updateAddElementCategoryOpenState: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<{
        category: string;
        open: boolean;
    }>) => void;
    updateContentReplacementState: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: {
        payload: {
            id: NodeId;
            state: "loading" | "fading-out" | "complete";
        };
        type: string;
    }) => void;
    updateCmdKLocation: (state: import("immer/dist/internal").WritableDraft<UISettingsState>, action: PayloadAction<CmdKLocation | null>) => void;
}, "components">;
export declare const togglePanelsVisibility: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"components/togglePanelsVisibility">, updateDarkModeEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "components/updateDarkModeEnabled">, updateEditorZoom: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "components/updateEditorZoom">, updateIsAdminEditing: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "components/updateIsAdminEditing">, updateDeviceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<keyof import("../../../data/types").Selectors, "components/updateDeviceType">, updateEditorMode: import("@reduxjs/toolkit").ActionCreatorWithPayload<"design" | "code", "components/updateEditorMode">, addAIGeneration: import("@reduxjs/toolkit").ActionCreatorWithPayload<AIGeneration, "components/addAIGeneration">, bulkUpdateAddElementCategoryOpenState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    [category: string]: boolean;
}, "components/bulkUpdateAddElementCategoryOpenState">, updateAddElementCategoryOpenState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    category: string;
    open: boolean;
}, "components/updateAddElementCategoryOpenState">, updateContentReplacementState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    id: NodeId;
    state: "loading" | "fading-out" | "complete";
}, "components/updateContentReplacementState">, updateCmdKLocation: import("@reduxjs/toolkit").ActionCreatorWithPayload<CmdKLocation | null, "components/updateCmdKLocation">;
export declare const uiSettingsReducer: import("redux").Reducer<UISettingsState>;
//# sourceMappingURL=ui-settings.d.ts.map