import { type ReactNode } from 'react';
import type { CanvasThemeConfig } from './types';
interface ThemeContextValue {
    config: Required<CanvasThemeConfig>;
    mode: 'light' | 'dark';
    cssVariables: Record<string, string>;
}
export interface ThemeProviderProps {
    children: ReactNode;
    /** Customer theme overrides (nested by visual element) */
    themeConfig?: CanvasThemeConfig;
    /** Workspace-level theme (applied between defaults and config overrides) */
    workspaceTheme?: CanvasThemeConfig;
    shadowRoot?: ShadowRoot | null;
}
/**
 * Theme provider: config → merge with defaults → flatten to CSS vars → inject into shadow root.
 * When workspaceTheme is provided, uses 3-layer merge: defaults → workspace → config.
 * No auto-detection. Fully deterministic.
 */
export declare function ThemeProvider({ children, themeConfig, workspaceTheme, shadowRoot, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
/**
 * Hook to access theme context
 */
export declare function useTheme(): ThemeContextValue;
export {};
