import { type ReactNode } from 'react';
import type { ApiClient } from '../../../../api/src/request';
import type { Theme } from '../../../../blocks/src/index';
import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
import type { PaletteOverrides, PaletteVariantId } from '../../../../theme-core/src/palette/index';
import type { FooterLookId, FooterSelectionContext, HeaderLookId, HeaderSelectionContext } from '../../../../theme-core/src/site-styles/index';
import type { SiteStyleAccess } from './siteStyleAccess';
import { type SiteChromeLookOption } from './siteChromeLookRows';
import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
type SiteChromeCustomizeSurfaceState = Readonly<{
    kind: 'unavailable';
}> | Readonly<{
    kind: 'available';
    label: string;
    currentId: HeaderLookId | FooterLookId | null;
    currentLabel: string;
    options: readonly SiteChromeLookOption<HeaderLookId | FooterLookId | null>[];
    diagnostics: readonly string[];
    saving: boolean;
    failure: string | null;
    applyAllowed: boolean;
}>;
type SiteChromeCustomizeContextValue = Readonly<{
    getSurfaceState: (surface: SiteChromeEditableSurfaceKind) => SiteChromeCustomizeSurfaceState;
    cycleSurfaceLook: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
}>;
export type SiteChromeCustomizeProviderProps = Readonly<{
    children: ReactNode;
    siteId: string;
    apiClient: ApiClient;
    theme?: Theme | null;
    themeId?: string | null;
    selectionId?: string | null;
    selectionVersion?: number | null;
    selectionUpdatedAt?: string | null;
    initialSelections: Readonly<{
        selectionVersion?: number | null;
        selectionUpdatedAt?: string | null;
        buttonPersonalityId: ButtonPersonalityId | null;
        paletteVariantId: PaletteVariantId | null;
        paletteOverrides: PaletteOverrides | null;
        headerLookId?: HeaderLookId | null;
        footerLookId?: FooterLookId | null;
    }>;
    headerSelectionContext?: Partial<HeaderSelectionContext>;
    footerSelectionContext?: Partial<FooterSelectionContext>;
    siteStyleAccess?: SiteStyleAccess;
}>;
export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, siteStyleAccess, }: SiteChromeCustomizeProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useSiteChromeCustomizeOptional(): SiteChromeCustomizeContextValue | null;
export {};
