/** An option in the {@link ThemeSwitcher} segmented control. */ export interface IThemeOption { /** Value reported to `onChange`. Also used as the React key. */ id: T; /** Short label shown on the segment. Kept terse — segments are compact. */ label: string; } /** * The themes bundled in the library stylesheet, using their abbreviated labels * because the segments are narrow. Derived from the theme registry, so a new * bundled theme appears here without a code change. */ export declare const DEFAULT_THEME_OPTIONS: IThemeOption[]; export interface ThemeSwitcherProps { /** Currently selected theme id. */ value: T; /** Called with the newly selected theme id. */ onChange: (theme: T) => void; /** * Selectable themes. Defaults to every theme bundled in the library's * stylesheet. Supply your own to offer a different set. */ options?: IThemeOption[]; /** Extra classes merged onto the root element. */ className?: string; /** Accessible label for the group. Defaults to `"Theme"`. */ 'aria-label'?: string; } /** * A compact segmented control for switching themes. * * Controlled — it renders `value` and reports changes through `onChange`, and * applies no classes to the document itself. For the store-backed variant that * also sets the theme class on ``, see `ConnectedThemeSwitcher`. * * @example * ```tsx * const [theme, setTheme] = useState('light'); * * ``` */ export declare const ThemeSwitcher: ({ value, onChange, options, className, "aria-label": ariaLabel, }: ThemeSwitcherProps) => import("react/jsx-runtime").JSX.Element;