/**
 * ThemeController — Lit ReactiveController replacing ThemeProvider + useTheme.
 *
 * Merges theme config with defaults, flattens to CSS variables,
 * and injects them into the host's shadow root.
 */
import type { ReactiveController, ReactiveControllerHost } from 'lit';
import type { CanvasThemeConfig } from '../theme/types.js';
export interface ThemeState {
    config: Required<CanvasThemeConfig>;
    mode: 'light' | 'dark';
    cssVariables: Record<string, string>;
}
export declare class ThemeController implements ReactiveController {
    #private;
    get config(): Required<{
        mobile?: {
            canvas?: {
                position?: "right" | "left" | undefined;
                layout?: "push" | "overlay" | undefined;
                background?: string | undefined;
                blur?: string | undefined;
                border?: string | undefined;
                width?: string | undefined;
                padding?: string | undefined;
                transitionDuration?: string | undefined;
                transitionEasing?: string | undefined;
                transitionFade?: string | undefined;
                backdrop?: boolean | undefined;
                backdropColor?: string | undefined;
            } | undefined;
        } | undefined;
        content?: {
            background?: string | undefined;
            border?: string | undefined;
            backgroundHover?: string | undefined;
            borderRadius?: string | undefined;
            textColor?: string | undefined;
            bodyPadding?: string | undefined;
            textSecondaryColor?: string | undefined;
            itemDivider?: string | undefined;
            itemGap?: string | undefined;
            itemPadding?: string | undefined;
            itemFontSize?: string | undefined;
            bodyFontSize?: string | undefined;
            categoryPadding?: string | undefined;
            categoryGap?: string | undefined;
            categoryFontSize?: string | undefined;
            searchBackground?: string | undefined;
            searchColor?: string | undefined;
            chevronColor?: string | undefined;
        } | undefined;
        overlay?: {
            background?: string | undefined;
            border?: string | undefined;
            borderRadius?: string | undefined;
            titleColor?: string | undefined;
            textColor?: string | undefined;
            arrowColor?: string | undefined;
            arrowSize?: string | undefined;
            scrimOpacity?: string | undefined;
            highlightRing?: string | undefined;
        } | undefined;
        canvas?: {
            position?: "right" | "left" | undefined;
            layout?: "push" | "overlay" | undefined;
            background?: string | undefined;
            blur?: string | undefined;
            border?: string | undefined;
            width?: string | undefined;
            padding?: string | undefined;
            transitionDuration?: string | undefined;
            transitionEasing?: string | undefined;
            transitionFade?: string | undefined;
            backdrop?: boolean | undefined;
            backdropColor?: string | undefined;
        } | undefined;
        borderRadius?: string | undefined;
        mode?: "dark" | "light" | undefined;
        fontFamily?: string | undefined;
        colorPrimary?: string | undefined;
        colorPrimaryHover?: string | undefined;
        launcher?: {
            size?: string | undefined;
            icon?: string | undefined;
            background?: string | undefined;
            backgroundHover?: string | undefined;
            color?: string | undefined;
            shadow?: string | undefined;
            borderRadius?: string | undefined;
        } | undefined;
        tile?: {
            background?: string | undefined;
            border?: string | undefined;
            backgroundHover?: string | undefined;
            shadow?: string | undefined;
            borderRadius?: string | undefined;
            titleColor?: string | undefined;
            textColor?: string | undefined;
            iconBackground?: string | undefined;
            iconShadow?: string | undefined;
            headerPadding?: string | undefined;
            bodyPadding?: string | undefined;
            gap?: string | undefined;
        } | undefined;
        notification?: {
            background?: string | undefined;
            border?: string | undefined;
            borderRadius?: string | undefined;
            textColor?: string | undefined;
            iconBackground?: string | undefined;
            textSecondaryColor?: string | undefined;
            successColor?: string | undefined;
            warningColor?: string | undefined;
            errorColor?: string | undefined;
            progressGradient?: string | undefined;
        } | undefined;
    }>;
    get mode(): "dark" | "light";
    get cssVariables(): Record<string, string>;
    constructor(host: ReactiveControllerHost & HTMLElement, themeConfig?: CanvasThemeConfig, workspaceTheme?: CanvasThemeConfig);
    hostConnected(): void;
    hostDisconnected(): void;
    hostUpdated(): void;
    /**
     * Update theme config and re-compute + re-inject CSS variables.
     */
    setThemeConfig(themeConfig: CanvasThemeConfig, workspaceTheme?: CanvasThemeConfig): void;
}
