import { ComputedRef, InjectionKey } from "vue"; import { RuleItem, ValidateOption } from 'async-validator'; import { FormProps } from "./Form"; import { FormItemProps } from './FormItem'; export interface FormContextProps { props: FormProps; addItem: (FormItemVm: any) => void; delItem: (FormItemVm: any) => void; } export declare const FormContextKey: InjectionKey; export type FormItemVm = { props: FormItemProps; valueRef: ComputedRef; resetField: () => void; clearValidate: () => void; validate: (options?: FormItemValidateOptions) => Promise; }; export type FormRules = { [prop: string]: FormItemRule | FormItemRule[]; }; export type FormItemRule = { trigger?: ValidationTrigger; } & RuleItem; export type FormItemValidateOptions = { trigger?: ValidationTrigger; } & ValidateOption; export type ValidationTrigger = 'change' | 'blur' | 'focus';