import { TCromwellBlockData, TPalette, TPluginEntity, TThemeConfig } from '@cromwell/core';
import React from 'react';
import { TExtendedPageConfig, TExtendedPageInfo } from '../ThemeEdit';
export declare const useThemeEditor: () => {
    pageInfos: TExtendedPageInfo[];
    editingPageConfig: TExtendedPageConfig;
    themeName: string;
    minimizeLeftbar: boolean;
    isLoading: boolean;
    isPageLoading: boolean;
    rerender: number;
    changedPageInfo: boolean;
    changedPalette: boolean;
    changedModifications: TCromwellBlockData[];
    plugins: TPluginEntity[];
    setPageInfos: React.Dispatch<React.SetStateAction<TExtendedPageInfo[]>>;
    pageConfigOverrides: Partial<TExtendedPageConfig>;
    overrideConfig: React.Dispatch<React.SetStateAction<Partial<TExtendedPageConfig>>>;
    setEditingPageConfig: React.Dispatch<React.SetStateAction<TExtendedPageConfig>>;
    setMinimizeLeftbar: React.Dispatch<React.SetStateAction<boolean>>;
    setLoading: React.Dispatch<React.SetStateAction<boolean>>;
    themePalette: TPalette;
    setThemePalette: React.Dispatch<React.SetStateAction<TPalette>>;
    themeConfig: TThemeConfig;
    setThemeConfig: React.Dispatch<React.SetStateAction<TThemeConfig>>;
    setIsPageLoading: React.Dispatch<React.SetStateAction<boolean>>;
    forceRerender: React.Dispatch<React.SetStateAction<number>>;
    setChangedPalette: React.Dispatch<React.SetStateAction<boolean>>;
    setChangedPageInfo: React.Dispatch<React.SetStateAction<boolean>>;
    setChangedModifications: React.Dispatch<React.SetStateAction<TCromwellBlockData[]>>;
    hasUnsavedModifications: boolean;
    fetchPageInfos: () => Promise<TExtendedPageInfo[]>;
    handleOpenPage: (pageInfo: TExtendedPageInfo) => Promise<void>;
    pageFrameRef: React.MutableRefObject<HTMLIFrameElement>;
    handlePageModificationsChange: (modifications: TCromwellBlockData[] | null | undefined) => void;
    resetModifications: () => void;
    frameWidth: 0 | 1 | 2 | 3 | 4;
    init: () => Promise<void>;
    setFrameWidth: React.Dispatch<React.SetStateAction<0 | 1 | 2 | 3 | 4>>;
    forceUpdate: () => void;
};
export declare const ThemeEditorProvider: ({ children }: {
    children: any;
}) => JSX.Element;
