import { Theme, ResolvedTheme } from '../../ui/index';
export interface ThemeIconProps {
    theme: string;
    className?: string;
    size?: number;
}
/**
 * Renders the appropriate icon for a given theme string.
 *
 * - `"light"` renders a Sun icon
 * - `"monokai"` or `"glass"` renders a Palette icon
 * - Everything else (including `"dark"`) renders a Moon icon
 */
export declare function ThemeIcon({ theme, className, size }: ThemeIconProps): import("react/jsx-runtime").JSX.Element;
export interface ThemeToggleButtonProps {
    className?: string;
}
/**
 * A button that cycles through available themes on click.
 *
 * Displays an icon matching the current theme and a title/tooltip
 * describing the current theme and prompting to switch.
 */
export declare function ThemeToggleButton({ className }: ThemeToggleButtonProps): import("react/jsx-runtime").JSX.Element;
export interface UseThemeStateResult {
    /** The current resolved theme applied to the document */
    theme: ResolvedTheme;
    /** Human-readable label for the current theme */
    themeLabel: string;
    /** The theme that will be applied on the next toggle */
    nextTheme: Theme;
    /** Human-readable label for the next theme */
    nextThemeLabel: string;
    /** Cycle to the next theme */
    toggle: () => void;
}
/**
 * React hook that wraps the ui module's theme state.
 *
 * Listens for DOM attribute mutations on `data-theme` so the
 * component re-renders whenever the theme changes, whether the
 * change was triggered by this hook or by external code.
 */
export declare function useThemeState(): UseThemeStateResult;
//# sourceMappingURL=index.d.ts.map