import React from 'react';
import type { FieldDefinition, BlockCategory } from '../../../blocks/src/index';
/**
 * SDK Site Configuration for form widgets
 *
 * This context provides SDK config to widgets like BackgroundColorWidget
 * that need to display SDK-specific options (e.g., curated section backgrounds).
 */
export type SdkThemePalette = Record<string, string>;
export type SdkSectionBackground = {
    id: string;
    label: string;
    token: string;
};
export type SdkSectionOptions = {
    backgroundColor?: boolean;
    backgroundGradient?: boolean;
    backgroundImage?: boolean;
    spacing?: string[] | boolean;
    textColor?: boolean;
};
export type SdkSiteStyleConfig = {
    sectionBackgrounds?: SdkSectionBackground[];
    sectionOptions?: SdkSectionOptions;
};
/**
 * SDK Custom Block definition (subset of @riverbankcms/sdk/config types for block-form use)
 */
export type SdkCustomBlock = {
    id: `custom.${string}`;
    title: string;
    titleSource?: string | string[];
    description?: string;
    category: BlockCategory;
    icon?: string;
    tags?: string[];
    fields: FieldDefinition[];
};
/**
 * Field select option for SDK-provided field options.
 *
 * Note: This mirrors FieldSelectOption from @riverbankcms/sdk/config.
 * block-form is a lightweight package that doesn't depend on SDK,
 * so these types are defined locally.
 */
export type SdkFieldSelectOption = {
    value: string;
    label: string;
};
/**
 * Per-field configuration within a block.
 *
 * Note: This mirrors BlockFieldConfig from @riverbankcms/sdk/config.
 */
export type SdkBlockFieldConfig = {
    options?: SdkFieldSelectOption[];
};
/**
 * Per-block field options map.
 *
 * Note: This mirrors BlockFieldOptionsMap from @riverbankcms/sdk/config.
 */
export type SdkBlockFieldOptionsMap = Record<string, Record<string, SdkBlockFieldConfig>>;
/**
 * Block field extension configuration.
 *
 * Note: This mirrors BlockFieldExtension from @riverbankcms/sdk/config.
 */
export type SdkBlockFieldExtension = {
    fields: FieldDefinition[];
};
/**
 * Per-block field extensions map.
 *
 * Note: This mirrors BlockFieldExtensionsMap from @riverbankcms/sdk/config.
 */
export type SdkBlockFieldExtensionsMap = Record<string, SdkBlockFieldExtension>;
export type SdkConfig = {
    theme?: {
        palette: SdkThemePalette;
    };
    styles?: SdkSiteStyleConfig;
    customBlocks?: SdkCustomBlock[];
    blockFieldOptions?: SdkBlockFieldOptionsMap;
    blockFieldExtensions?: SdkBlockFieldExtensionsMap;
};
type SdkConfigContextValue = {
    sdkConfig: SdkConfig | null;
    /** Section backgrounds from SDK config */
    sectionBackgrounds: SdkSectionBackground[] | null;
    /** Section options from SDK config */
    sectionOptions: SdkSectionOptions | null;
    /** Theme palette for resolving tokens to hex values */
    themePalette: SdkThemePalette | null;
    /** SDK custom block definitions */
    customBlocks: SdkCustomBlock[] | null;
    /** Per-block field options */
    blockFieldOptions: SdkBlockFieldOptionsMap | null;
    /** Per-block field extensions (additional fields for built-in blocks) */
    blockFieldExtensions: SdkBlockFieldExtensionsMap | null;
    /** Whether this is an SDK site with style config */
    isSdkSite: boolean;
};
export type SdkConfigProviderProps = {
    sdkConfig: SdkConfig | null | undefined;
    children: React.ReactNode;
};
export declare function SdkConfigProvider({ sdkConfig, children }: SdkConfigProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useSdkConfig(): SdkConfigContextValue;
export {};
