/** * 主题上下文:提供当前主题、切换函数与持久化 */ import React from 'react'; import type { ThemeName, ThemeTokenOverrides } from './types'; export interface ThemeContextValue { /** 当前主题名 */ theme: ThemeName; /** 切换主题(内置 light/dark 或通过 themes 注册的名字) */ setTheme: (name: ThemeName, overrides?: ThemeTokenOverrides) => void; /** 当前生效的变量覆盖(只读),便于扩展或传给 StyleProvider */ themeTokens: ThemeTokenOverrides; /** 是否为暗色主题 */ isDark: boolean; } export interface ThemeProviderProps { children: React.ReactNode; /** 默认主题名 */ defaultTheme?: ThemeName; /** 持久化 key,传入则记住上次选择 */ persistKey?: string; /** 扩展主题:主题名 -> 变量覆盖,会与 PRESET_THEMES 合并 */ themes?: Record; } export declare function ThemeProvider(props: ThemeProviderProps): React.JSX.Element; export declare function useThemeContext(): ThemeContextValue;