import { default as React, ReactNode } from 'react'; import { ThemeVariant, ThemeMode, ThemeColors, ThemeTokens, ThemeAnimation, ThemeFocus, LayoutTokens, BorderTokens } from './types'; export type { ThemeVariant, ThemeMode, ThemeColors, ThemeTokens, ThemeAnimation, ThemeFocus, LayoutTokens, BorderTokens, }; export interface ThemeContextValue { theme: ThemeVariant; mode: ThemeMode; tokens: ThemeTokens; prefersReducedMotion: boolean; /** Custom accent color override (null = use theme default) */ accentColor: string | null; setTheme: (theme: ThemeVariant) => void; setMode: (mode: ThemeMode) => void; toggleMode: () => void; /** Override the accent color for the current theme */ setAccentColor: (color: string | null) => void; } export interface ThemeProviderProps { children: ReactNode; /** Default theme variant */ theme?: ThemeVariant; /** Alias for `theme` */ defaultVariant?: ThemeVariant; /** Default color mode */ mode?: ThemeMode; /** Alias for `mode` */ defaultMode?: ThemeMode; /** Persist preferences to localStorage */ persist?: boolean; } /** * useScrollbarStyles — returns inline React.CSSProperties for a * scrollable container that matches the current Zendir theme. * * Use when you need programmatic control rather than the * `zendir-scroll` CSS class. * * @example * ```tsx * const scrollStyle = useScrollbarStyles(); *
* ``` */ export declare function useScrollbarStyles(): React.CSSProperties; /** * ThemeProvider - Enterprise theme context provider * * Provides theme tokens, mode switching, and accessibility features * to all child components. * * @example * ```tsx * // Zen (Hybrid) is the default * * * ``` */ export declare function ThemeProvider({ children, theme: themeProp, defaultVariant, mode: modeProp, defaultMode: defaultModeProp, persist, }: ThemeProviderProps): React.ReactElement; /** * useTheme - Access theme context * * @throws Error if used outside ThemeProvider * * @example * ```tsx * const { tokens, mode, toggleMode } = useTheme(); * ``` */ export declare function useTheme(): ThemeContextValue; /** * useThemeTokens - Access only theme tokens (for memoization) */ export declare function useThemeTokens(): ThemeTokens;