import * as vue from 'vue'; import { ComponentPropsOptions, ExtractPropTypes, PropType } from 'vue'; interface FilterPropsOptions, Props = ExtractPropTypes> { filterProps, U extends Exclude>>(props: T): Partial>; } type ClassValue = any; type EventProp void> = F; declare const EventProp: () => PropType>; type ValidationResult = string | boolean; type ValidationRule = ValidationResult | PromiseLike | ((value: any) => ValidationResult) | ((value: any) => PromiseLike); type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'; type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager'; interface ValidationProps { disabled: boolean | null; error: boolean; errorMessages: string | readonly string[] | null; focused: boolean; maxErrors: string | number; name: string | undefined; label: string | undefined; readonly: boolean | null; rules: readonly ValidationRule[]; modelValue: any; 'onUpdate:modelValue': EventProp | undefined; validateOn?: ValidateOn; validationValue: any; } interface FieldValidationResult { id: number | string; errorMessages: string[]; } interface FormValidationResult { valid: boolean; errors: FieldValidationResult[]; } interface SubmitEventPromise extends SubmitEvent, Promise { } interface FormProps { disabled: boolean; fastFail: boolean; readonly: boolean; modelValue: boolean | null; 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined; validateOn: ValidationProps['validateOn']; } declare const VForm: { new (...args: any[]): vue.CreateComponentPublicInstance<{ style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } & { onSubmit?: ((e: SubmitEventPromise) => any) | undefined; "onUpdate:modelValue"?: ((val: boolean | null) => any) | undefined; }, { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; } & HTMLFormElement & { _allExposed: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }; }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, { 'update:modelValue': (val: boolean | null) => true; submit: (e: SubmitEventPromise) => true; }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } & { onSubmit?: ((e: SubmitEventPromise) => any) | undefined; "onUpdate:modelValue"?: ((val: boolean | null) => any) | undefined; }, { style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; }, true, {}, vue.SlotsType; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNode[]; }>>, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } & { onSubmit?: ((e: SubmitEventPromise) => any) | undefined; "onUpdate:modelValue"?: ((val: boolean | null) => any) | undefined; }, { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; } & HTMLFormElement & { _allExposed: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }; }, {}, {}, {}, { style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & vue.ComponentOptionsBase<{ style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } & { onSubmit?: ((e: SubmitEventPromise) => any) | undefined; "onUpdate:modelValue"?: ((val: boolean | null) => any) | undefined; }, { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; } & HTMLFormElement & { _allExposed: { errors: vue.Ref<{ id: number | string; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }; }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, { 'update:modelValue': (val: boolean | null) => true; submit: (e: SubmitEventPromise) => true; }, string, { style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined; fastFail: boolean; }, {}, string, vue.SlotsType; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: number | string; validate: () => Promise; reset: () => Promise; resetValidation: () => Promise; vm: vue.Raw; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: number | string; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNode[]; }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ disabled: BooleanConstructor; fastFail: BooleanConstructor; readonly: BooleanConstructor; modelValue: { type: vue.PropType; default: null; }; validateOn: { type: vue.PropType; default: string; }; class: vue.PropType; style: { type: vue.PropType; default: null; }; }, vue.ExtractPropTypes<{ disabled: BooleanConstructor; fastFail: BooleanConstructor; readonly: BooleanConstructor; modelValue: { type: vue.PropType; default: null; }; validateOn: { type: vue.PropType; default: string; }; class: vue.PropType; style: { type: vue.PropType; default: null; }; }>>; type VForm = InstanceType; export { VForm };