import { default as React } from 'react';
import { ThemeOverrides, ThemeColorKey } from '../utils/theme-generator';
type Theme = "dark" | "light" | "system";
type Contrast = "standard" | "medium" | "high";
export interface FontSettings {
    brand: string;
    plain: string;
    expressiveButtons: boolean;
}
interface ThemeProviderState {
    theme: Theme;
    setTheme: (theme: Theme) => void;
    contrast: Contrast;
    setContrast: (contrast: Contrast) => void;
    resolvedTheme: "light" | "dark";
    fonts: FontSettings;
    setFonts: (fonts: Partial<FontSettings>) => void;
    seedColor: string | null;
    setSeedColor: (color: string | null) => void;
    overrides: ThemeOverrides;
    setOverride: (key: ThemeColorKey, value: string | null) => void;
    resetOverrides: () => void;
}
interface ThemeProviderProps {
    children: React.ReactNode;
    defaultTheme?: Theme;
    defaultContrast?: Contrast;
    defaultFonts?: FontSettings;
    defaultSeedColor?: string | null;
    defaultOverrides?: ThemeOverrides;
    storageKey?: string;
    contrastStorageKey?: string;
    fontStorageKey?: string;
    seedColorStorageKey?: string;
    overridesStorageKey?: string;
}
export declare function ThemeProvider({ children, defaultTheme, defaultContrast, defaultFonts, defaultSeedColor, defaultOverrides, storageKey, contrastStorageKey, fontStorageKey, seedColorStorageKey, overridesStorageKey, ...props }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
export declare const useTheme: () => ThemeProviderState;
export {};
