import * as vue from 'vue'; import { ComponentPropsOptions, ExtractPropTypes } from 'vue'; interface FilterPropsOptions, Props = ExtractPropTypes> { filterProps, U extends Exclude>>(props: T): Partial>; } interface FieldValidationResult { id: number | string; errorMessages: string[]; } interface FormValidationResult { valid: boolean; errors: FieldValidationResult[]; } interface SubmitEventPromise extends SubmitEvent, Promise { } declare const VForm: { new (...args: any[]): vue.CreateComponentPublicInstance<{ style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; 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: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; } & HTMLFormElement, 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: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; 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: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | 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: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; 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: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; 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: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; } & HTMLFormElement, {}, {}, {}, { style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; fastFail: boolean; }>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<{ style: vue.StyleValue; disabled: boolean; readonly: boolean; modelValue: boolean | null; validateOn: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; fastFail: boolean; } & { class?: any; } & { $children?: vue.VNodeChild | { default?: ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild); 'v-slots'?: { default?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; }) => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { errors: vue.Ref<{ id: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; 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: string | number; errorMessages: string[]; }[]>; isDisabled: vue.ComputedRef; isReadonly: vue.ComputedRef; isValidating: vue.ShallowRef; isValid: vue.Ref & { readonly externalValue: boolean | null; }; items: vue.Ref<{ id: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; errorMessages: string[]; }[]; }>; reset: () => void; resetValidation: () => void; } & HTMLFormElement, 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: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | 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: string | number; validate: () => Promise; reset: () => void; resetValidation: () => void; isValid: boolean | null; errorMessages: string[]; }[]>; validate: () => Promise<{ valid: boolean; errors: { id: string | number; 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<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>; 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<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>; default: string; }; class: vue.PropType; style: { type: vue.PropType; default: null; }; }>>; type VForm = InstanceType; export { VForm };