import type { IfAny } from '@vue/shared'; import type { Prop, VNode } from 'vue'; import type { VueTypeDef, VueTypeValidableDef } from 'vue-types'; import type { InferType, VueProp, Prop as VueTypeProp } from 'vue-types/dist/types'; import { arrayOf, custom, instanceOf, objectOf, shape } from 'vue-types'; export declare type MaybeArray = T | T[]; declare type PublicRequiredKeys = { [K in keyof T]: T[K] extends { required: true; } ? K : never; }[keyof T]; declare type PublicOptionalKeys = Exclude>; declare type InnerRequiredKeys = { [K in keyof T]: T[K] extends { required: true; } | { default: any; } ? T[K] extends { default: undefined; } ? never : K : never; }[keyof T]; declare type InnerOptionalKeys = Exclude>; declare type InferPropType = [T] extends [null] ? any : [T] extends [{ type: null | true; }] ? any : [T] extends [ObjectConstructor | { type: ObjectConstructor; }] ? Record : [T] extends [BooleanConstructor | { type: BooleanConstructor; }] ? boolean : [T] extends [DateConstructor | { type: DateConstructor; }] ? Date : [T] extends [(infer U)[] | { type: (infer U)[]; }] ? U extends DateConstructor ? Date | InferPropType : InferPropType : [T] extends [Prop] ? unknown extends V ? IfAny : V : T; export declare type ExtractPublicPropTypes = { [K in keyof Pick>]: InferPropType; } & { [K in keyof Pick>]?: InferPropType; }; export declare type ExtractInnerPropTypes = { [K in keyof Pick>]: InferPropType; } & { [K in keyof Pick>]?: InferPropType; }; export declare class IxPropTypes { static get any(): VueTypeValidableDef; static get bool(): VueTypeValidableDef; static get string(): VueTypeValidableDef; static get number(): VueTypeValidableDef; static get integer(): VueTypeValidableDef; static get symbol(): VueTypeDef; static custom: typeof custom; static instanceOf: typeof instanceOf; static arrayOf: typeof arrayOf; static objectOf: typeof objectOf; static shape: typeof shape; static object(): VueTypeValidableDef; static func any>(): VueTypeValidableDef; static array(): VueTypeValidableDef; static oneOfType(arr: Array | VueTypeProp>): VueTypeDef; static oneOfType | VueTypeProp, V = InferType>(arr: U[]): VueTypeDef; static oneOf(arr: T[]): VueTypeDef; static oneOf(arr: T): VueTypeDef; static get vNode(): VueTypeValidableDef; static maxLength(max: number): VueTypeValidableDef; static minLength(min: number): VueTypeValidableDef; static max(max: number): VueTypeValidableDef; static min(min: number): VueTypeValidableDef; static range(min: number, max: number): VueTypeValidableDef; static emit any>(): VueTypeDef; } export declare function callEmit any>(funcs: T[] | T | undefined, ...args: Parameters): ReturnType | void; export declare type VKey = string | number | symbol; export declare const vKeyPropDef: VueTypeDef; export {};