import { deep } from '@synnaxlabs/x';
import { PropsWithChildren, ReactElement } from 'react';
import { theming } from './aether';
export interface ContextValue {
    theme: theming.Theme;
    toggleTheme: () => void;
    setTheme: (key: string) => void;
}
export interface UseProviderProps {
    theme?: deep.Partial<theming.ThemeSpec> & {
        key: string;
    };
    setTheme?: (key: string) => void;
    toggleTheme?: () => void;
    themes?: Record<string, theming.ThemeSpec>;
    lightTheme?: string;
    darkTheme?: string;
}
export declare const useProvider: ({ theme, themes, setTheme, toggleTheme, lightTheme, darkTheme, }: UseProviderProps) => ContextValue;
export declare const useContext: () => ContextValue;
export declare const use: () => theming.Theme;
export interface ProviderProps extends PropsWithChildren<unknown>, UseProviderProps {
    applyCSSVars?: boolean;
    defaultTheme?: string;
    el?: HTMLElement | null;
}
export declare const Provider: ({ children, applyCSSVars, el, ...rest }: ProviderProps) => ReactElement;
//# sourceMappingURL=Provider.d.ts.map