import { ThemeCommonVars } from "../_styles/common/light.js"; import { GlobalTheme } from "../config-provider/src/interface.js"; import "../config-provider/index.js"; import { ComputedRef, PropType, Ref } from "vue"; import { CNode } from "css-render"; //#region src/_mixins/use-theme.d.ts interface Theme, R = any> { name: N; common?: ThemeCommonVars; peers?: R; self?: (vars: ThemeCommonVars) => T; } interface ThemeProps> { theme: PropType; themeOverrides: PropType; builtinThemeOverrides: PropType; } type ExtractThemeVars = T extends Theme ? unknown extends U ? Record : U : Record; type ExtractPeerOverrides = T extends Theme ? { peers?: { [k in keyof V]?: ExtractThemeOverrides; }; } : T; type ExtractMergedPeerOverrides = T extends Theme ? { [k in keyof V]?: ExtractPeerOverrides; } : T; type ExtractThemeOverrides = Partial> & ExtractPeerOverrides & { common?: Partial; }; declare function createTheme(theme: Theme): Theme; type UseThemeProps = Readonly<{ theme?: T | undefined; themeOverrides?: ExtractThemeOverrides; builtinThemeOverrides?: ExtractThemeOverrides; }>; type MergedTheme = T extends Theme ? { common: ThemeCommonVars; self: V; peers: W; peerOverrides: ExtractMergedPeerOverrides; } : T; declare function useTheme>(resolveId: Exclude, mountId: string, style: CNode | undefined, defaultTheme: T, props: UseThemeProps, clsPrefixRef: Ref | undefined): ComputedRef>; declare namespace useTheme { var props: { readonly theme: ObjectConstructor; readonly themeOverrides: ObjectConstructor; readonly builtinThemeOverrides: ObjectConstructor; }; } //#endregion export { ExtractMergedPeerOverrides, ExtractPeerOverrides, ExtractThemeOverrides, ExtractThemeVars, MergedTheme, Theme, ThemeProps, createTheme, useTheme as default };