import { ComputedRef, Ref } from 'vue'; import { FormRefInstance } from '../types/instance'; import { FormField } from '../types/fields'; import { FormInferredData, FormSchema } from '../types/form'; import { Narrowable } from '../../_shared/types/utils'; export declare function useFormController, const StepKey extends Narrowable, const FieldKey extends Narrowable>(formRef: Ref, schema: TFormSchema): { schema: TFormSchema; validate(): Promise | (() => boolean); formData: ComputedRef>; nextStep: () => Promise; previousStep: () => void; currentStep: ComputedRef; canTriggerNext: ComputedRef; canTriggerPrevious: ComputedRef; isDirty: ComputedRef; reset: (clear?: boolean) => void; }; export declare function buildFormSchema, const StepKey extends Narrowable, const FieldKey extends Narrowable>(schema: TFormSchema): TFormSchema; export declare function buildFormSchemaDist, const StepKey extends Narrowable, const FieldKey extends Narrowable>(schema: TFormSchema): TFormSchema; export declare function buildFieldSchema, FieldKey extends Narrowable>(field: TField): TField; export declare function buildMultiFieldSchema[], FieldKey extends Narrowable>(fields: TField): TField;