import { type HTMLAttributes } from 'react'; import { type VariantProps } from 'class-variance-authority'; import { type AccessibilityPreference, type ThemePreference } from '../../hooks'; declare const wrapperVariants: (props?: ({ variant?: "menu" | "split" | "compact" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export type ThemeToggleVariant = 'menu' | 'compact' | 'split'; interface ThemeToggleBaseProps extends Omit, 'onChange'>, VariantProps { /** * Visual form factor. * - `menu` (default) — single trigger that opens a dropdown with both * Appearance and Accessibility controls. Best for headers / nav rails. * - `compact` — segmented Appearance control only. Use when accessibility * lives on a separate settings surface. * - `split` — segmented Appearance control plus an inline Accessibility * switch. Best for full-width settings panels. */ variant?: ThemeToggleVariant; /** Hide the accessibility control. Ignored on `compact`, which never renders it. */ showAccessibility?: boolean; /** * Controlled escape hatch — when omitted the component reads/writes * `useTheme()` directly so it can drop into any header with no wiring. * Pass all four to opt into controlled mode. */ theme?: ThemePreference; accessibility?: AccessibilityPreference; onThemeChange?: (next: ThemePreference) => void; onAccessibilityChange?: (next: AccessibilityPreference) => void; } export type ThemeToggleProps = ThemeToggleBaseProps; /** Curated imperative handle for agent / external automation. */ export interface ThemeToggleHandle { getCurrentTheme: () => ThemePreference; getCurrentAccessibility: () => AccessibilityPreference; setTheme: (next: ThemePreference) => void; setAccessibility: (next: AccessibilityPreference) => void; } export declare const ThemeToggle: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=theme-toggle.d.ts.map