import { type ReactNode } from 'react';
import { type ApiClient } from '@riverbankcms/api/request';
import type { PreviewCustomizeAction } from '../blocks/previewCustomizeActions';
import { type PreviewPageDesignEditorApplyOutcome, type PreviewPageDesignEditorState } from './previewCustomizeWorkflowState';
export type { PreviewPageDesignEditorApplyOutcome, PreviewPageDesignEditorState, } from './previewCustomizeWorkflowState';
type PageDesignEditorStateContextValue = Readonly<{
    state: PreviewPageDesignEditorState;
    reload: () => void;
    applyAction: (action: PreviewCustomizeAction) => Promise<PreviewPageDesignEditorApplyOutcome>;
    undo: () => Promise<PreviewPageDesignEditorApplyOutcome>;
    redo: () => Promise<PreviewPageDesignEditorApplyOutcome>;
    canUndo: boolean;
    canRedo: boolean;
    isHistoryPending: boolean;
    isHistoryStale: boolean;
    historyFailure: string | null;
}>;
export declare const PREVIEW_CUSTOMIZE_STALE_MESSAGE = "This page changed since that design choice. Refresh the preview, then try again.";
export { applyPreviewCustomizeActionToState } from './previewCustomizeWorkflowState';
export declare function PreviewPageDesignEditorStateProvider({ apiClient, siteId, pageId, enabled, children, }: Readonly<{
    apiClient: ApiClient;
    siteId: string;
    pageId: string | null;
    enabled: boolean;
    children: ReactNode;
}>): import("react/jsx-runtime").JSX.Element;
export declare function usePreviewPageDesignEditorState(): PageDesignEditorStateContextValue;
