import type { InjectionKey } from 'vue'; import type { FormProps, FormRules } from 'element-ultra/components/form/src/form'; export interface FormContext { /** 表单根属性 */ props: FormProps; /** 表单规则 */ formRules: FormRules; emit: (evt: 'validate', ...args: any[]) => void; resetField: (field: string) => void; validateField: (field: string) => Promise; } export interface FormItemContext { validate(): Promise; reset(): void; clearValidate(): void; } export interface FormExposed { validate: (fields?: string | string[]) => Promise; resetFields: () => void; clearValidate: (fields?: string | string[]) => void; } export interface FormInjection { addForm(form: FormExposed): void; deleteForm(form: FormExposed): void; addMultipleForm(form: { validate: () => Promise; }): void; deleteMultipleForm(form: { validate: () => Promise; }): void; } export declare const formKey: InjectionKey; export declare const formItemKey: InjectionKey; export declare const injectedKey: InjectionKey; export declare const formInjectionKey: InjectionKey;