import { type PropsWithChildren, type ReactElement } from "react";
import { type SwitchProps } from '../input/Switch';
import { theming } from './aether';
export interface ContextValue {
    theme: theming.Theme;
    toggleTheme: () => void;
    setTheme: (key: string) => void;
}
export interface UseProviderProps {
    themes: Record<string, theming.ThemeSpec>;
    defaultTheme?: string;
}
export type UseProviderReturn = ContextValue;
export declare const useProvider: ({ themes, defaultTheme, }: UseProviderProps) => UseProviderReturn;
export declare const useContext: () => ContextValue;
export declare const use: () => theming.Theme;
export interface ProviderProps extends PropsWithChildren<unknown>, Partial<ContextValue> {
}
export declare const Provider: import("react").FC<ProviderProps & {
    aetherKey?: string | undefined;
}>;
export declare const Switch: ({ ...props }: Omit<SwitchProps, "onChange" | "value">) => ReactElement;
