import { Component, InjectionKey, PropType, SlotsType, UnwrapRef } from 'vue'; import { FormComponentOptions, FormSchema, FormTemplate, InjectedFormData, InjectedFormWrapperData, Path, InferSchema, InferFormattedError, RefinementCtx } from './types'; import { FormStatus } from './enums'; export declare function defineForm(schema: Schema, provideKey: InjectionKey>, options: FormComponentOptions, VvFormTemplate: FormTemplateComponent, wrappers: Map>): { clear: () => void; errors: import('vue').Ref | undefined, InferFormattedError | undefined>; formData: import('vue').Ref<(undefined extends Type ? Partial> : Type) | undefined, (undefined extends Type ? Partial> : Type) | undefined>; ignoreUpdates: import('@vueuse/core').IgnoredUpdater; invalid: import('vue').ComputedRef; readonly: import('vue').Ref; reset: () => void; status: import('vue').Ref; wrappers: Map>; stopUpdatesWatch: import('vue').WatchStopHandle; submit: (options?: { fields?: Set>>; superRefine?: (arg: InferSchema, ctx: RefinementCtx) => void | Promise; }) => Promise; validate: (value?: (undefined extends Type ? Partial> : Type) | undefined, options?: { fields?: Set>>; superRefine?: (arg: InferSchema, ctx: RefinementCtx) => void | Promise; }) => Promise; VvForm: import('vue').DefineComponent {}; }; readonly: { type: BooleanConstructor; default: boolean | undefined; }; tag: { type: StringConstructor; default: string; }; template: { type: PropType>; default: undefined; }; superRefine: { type: PropType<(arg: InferSchema, ctx: RefinementCtx) => void | Promise>; default: undefined; }; validateFields: { type: PropType>[]>; default: undefined; }; }>, { clear: () => void; errors: Readonly> | undefined, import('vue').DeepReadonly> | undefined>>; formData: import('vue').Ref<(undefined extends Type ? Partial> : Type) | undefined, (undefined extends Type ? Partial> : Type) | undefined>; ignoreUpdates: import('@vueuse/core').IgnoredUpdater; invalid: import('vue').ComputedRef; isReadonly: import('vue').Ref; reset: () => void; status: Readonly>; stopUpdatesWatch: import('vue').WatchStopHandle; submit: () => Promise; validate: (value?: (undefined extends Type ? Partial> : Type) | undefined, options?: { fields?: Set>>; superRefine?: (arg: InferSchema, ctx: RefinementCtx) => void | Promise; }) => Promise; wrappers: Map>; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "reset" | "submit" | "update:modelValue" | "update:readonly")[], "invalid" | "valid" | "reset" | "submit" | "update:modelValue" | "update:readonly", import('vue').PublicProps, Readonly {}; }; readonly: { type: BooleanConstructor; default: boolean | undefined; }; tag: { type: StringConstructor; default: string; }; template: { type: PropType>; default: undefined; }; superRefine: { type: PropType<(arg: InferSchema, ctx: RefinementCtx) => void | Promise>; default: undefined; }; validateFields: { type: PropType>[]>; default: undefined; }; }>> & Readonly<{ onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; onReset?: ((...args: any[]) => any) | undefined; onSubmit?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; "onUpdate:readonly"?: ((...args: any[]) => any) | undefined; }>, { readonly: boolean; superRefine: (arg: InferSchema, ctx: RefinementCtx) => void | Promise; tag: string; template: FormTemplate; continuousValidation: boolean; modelValue: Record; validateFields: Path>[]; }, SlotsType<{ default: { errors: UnwrapRef> | undefined, import('vue').DeepReadonly> | undefined>>>; formData: UnwrapRef> : Type) | undefined, (undefined extends Type ? Partial> : Type) | undefined>>; invalid: UnwrapRef>; readonly: UnwrapRef>; status: UnwrapRef>>; wrappers: typeof wrappers; clear: () => void; ignoreUpdates: import('@vueuse/core').IgnoredUpdater; reset: () => void; stopUpdatesWatch: import('vue').WatchStopHandle; submit: (options?: { fields?: Set>>; superRefine?: (arg: InferSchema, ctx: RefinementCtx) => void | Promise; }) => Promise; validate: (value?: (undefined extends Type ? Partial> : Type) | undefined, options?: { fields?: Set>>; superRefine?: (arg: InferSchema, ctx: RefinementCtx) => void | Promise; }) => Promise; }; }>, {}, {}, "invalid" | "valid" | "reset" | "status" | "readonly" | "clear" | "errors" | "validate" | "submit" | "tag" | "template", import('vue').ComponentProvideOptions, true, {}, any>; };