import type { PropType } from 'vue'; import type { VsProp, VsPropConvert, VsPropFinalized, VsPropInput, VsPropMergeType, IfVsProp, IfNativePropType, NativePropType } from './types'; export declare const vsPropKey = "__vsPropKey"; export declare const definePropType: (val: any) => PropType; export declare const isVsProp: (val: unknown) => val is VsProp; /** * @description Build prop. It can better optimize prop types * @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/element-plus/element-plus/pull/3341 */ export declare const buildProp: = never, Required_1 extends boolean = false>(prop: VsPropInput, key?: string | undefined) => VsPropFinalized; export declare const buildProps: >>(props: Props) => { [K in keyof Props]: IfVsProp>>; };