import { LightOrDark, ThemeOptions, ThemeProviderRuntimeProps, WithSystem } from './types';
import * as React from 'react';
/**
 * Framework-specific theme state returned by
 * `useTheme()`.
 *
 * Exposes the current selected theme, the
 * resolved document theme, the current system
 * theme, and a setter for updates.
 */
export interface ThemeResult<TTheme extends string = LightOrDark, TEnableSystem extends boolean = true> {
    /** All selectable theme names for this config */
    themes: ReadonlyArray<WithSystem<TTheme, TEnableSystem>>;
    /** Theme forced for the current page, if any */
    forced?: TTheme | undefined;
    /** Updates the selected theme */
    setSelected: (value: React.SetStateAction<WithSystem<TTheme, TEnableSystem>>) => void;
    /** Current selected theme preference */
    selected?: WithSystem<TTheme, TEnableSystem> | undefined;
    /** Current concrete theme applied to the document */
    resolved?: Exclude<TTheme, 'system'> | undefined;
    /** Current browser system theme */
    system?: LightOrDark | undefined;
}
export interface ThemeProviderProps<TTheme extends string = LightOrDark, TEnableSystem extends boolean = true> extends ThemeOptions<TTheme, TEnableSystem>, ThemeProviderRuntimeProps<TTheme, TEnableSystem> {
    children?: React.ReactNode | undefined;
}
export declare const useTheme: <TTheme extends string = LightOrDark, TEnableSystem extends boolean = true>() => ThemeResult<TTheme, TEnableSystem>;
export declare const ThemeProvider: <TTheme extends string = LightOrDark, TEnableSystem extends boolean = true>(props: ThemeProviderProps<TTheme, TEnableSystem>) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=react-bindings.d.ts.map