import { AnyObject, EmptyObject, ValidChar } from "../type.js"; import * as vue529 from "vue"; import { CSSProperties, Ref } from "vue"; //#region src/_util/hooks/useMergeSemantic.d.ts type SemanticSchema = { _default?: string; } & { [key: `${ValidChar}${string}`]: SemanticSchema; }; type SemanticClassNames = Partial>; type SemanticStyles = Partial>; type Resolvable = T | ((info: { props: P; }) => T); type SemanticType

= T | ((info: { props: P; }) => T); type SemanticClassNamesType = Resolvable, Props> & NestedStructure; type SemanticStylesType = Resolvable, Props> & NestedStructure; declare function mergeClassNames>>(schema?: SemanticSchema, ...classNames: (SemanticClassNames | undefined)[]): SemanticClassNames; declare function mergeStyles(...styles: (Partial | undefined)[]): Record; declare function resolveStyleOrClass(value: T | ((config: any) => T), info: { props: AnyObject; }): T; type MaybeFn = T | ((info: { props: P; }) => T) | undefined; type ObjectOnly = T extends ((...args: any) => any) ? never : T; /** * @desc Merge classNames and styles from multiple sources. When `schema` is provided, it **must** provide the nest object structure. * @descZH 合并来自多个来源的 classNames 和 styles,当提供了 `schema` 时,必须提供嵌套的对象结构。 */ /** * @desc Merge classNames and styles from multiple sources. When `schema` is provided, it **must** provide the nest object structure. * @descZH 合并来自多个来源的 classNames 和 styles,当提供了 `schema` 时,必须提供嵌套的对象结构。 */ declare function useMergeSemantic(classNamesList: Ref[]>, stylesList: Ref[]>, info: Ref<{ props: Props; }>, schema?: Ref): readonly [vue529.ComputedRef>, vue529.ComputedRef>]; declare function useMergeSemanticNoRef(classNamesList: MaybeFn[], stylesList: MaybeFn[], info: { props: Props; }, schema?: SemanticSchema): readonly [ObjectOnly, ObjectOnly]; declare function useToArr(...args: Ref[]): vue529.ComputedRef<(T | undefined)[]>; declare function useToProps(props: Ref): vue529.ComputedRef<{ props: T; }>; interface RemoveBaseAttributesOptions { class?: boolean; style?: boolean; omit?: string[]; } declare function pureAttrs(attrs: Record, options?: RemoveBaseAttributesOptions): Omit<{ [x: string]: any; }, string>; declare function getAttrStyleAndClass(attrs: Record, options?: RemoveBaseAttributesOptions, props?: Record): { className: any; style: any; restAttrs: Record; }; //#endregion export { Resolvable, SemanticClassNames, SemanticClassNamesType, SemanticSchema, SemanticStyles, SemanticStylesType, SemanticType, getAttrStyleAndClass, mergeClassNames, mergeStyles, pureAttrs, resolveStyleOrClass, useMergeSemantic, useMergeSemanticNoRef, useToArr, useToProps };