import type { PropType } from 'vue-demi'; import type { EpProp, EpPropConvert, EpPropFinalized, EpPropInput, EpPropMergeType, IfEpProp, IfNativePropType, NativePropType } from './types'; export declare const epPropKey = "__epPropKey"; export declare const definePropType: (val: any) => PropType; export declare const isEpProp: (val: unknown) => val is EpProp; /** * @description Build prop. It can better optimize prop types * @description 生成 prop,能更好地优化类型 * @example // limited options // the type will be PropType<'light' | 'dark'> buildProp({ type: String, values: ['light', 'dark'], } as const) * @example // limited options and other types // the type will be PropType<'small' | 'large' | number> buildProp({ type: [String, Number], values: ['small', 'large'], validator: (val: unknown): val is number => typeof val === 'number', } as const) @link see more: https://github.com/xzx-design/xzx-design/pull/3341 */ export declare const buildProp: = never, Required_1 extends boolean = false>(prop: EpPropInput, key?: string) => EpPropFinalized; type BindPropsReturn = { [K in keyof T]: IfEpProp>>; }; export declare const buildProps: >>(props: Props) => BindPropsReturn; export type Interceptor = (...args: any[]) => Promise | boolean | undefined | void; export declare const unknownProp: PropType; export declare const numericProp: (NumberConstructor | StringConstructor)[]; export declare const truthProp: { type: BooleanConstructor; default: true; }; export declare const makeRequiredProp: (type: T) => { type: T; required: true; }; export declare const makeArrayProp: () => { type: PropType; default: () => never[]; }; export declare const makeNumberProp: (defaultVal: T) => { type: NumberConstructor; default: T; }; export declare const makeNumericProp: (defaultVal: T) => { type: (NumberConstructor | StringConstructor)[]; default: T; }; export declare const makeStringProp: (defaultVal: T) => { type: PropType; default: T; }; export declare const makeObjectProp: (defaultVal: T | null) => { type: PropType; default: T | null; }; export {};