import type { InjectionKey } from 'vue'; import type { Emitter } from 'mitt'; import type { FieldErrorList } from 'async-validator'; export interface PsFormContext { registerLabelWidth(width: number, oldWidth: number): void; deregisterLabelWidth(width: number): void; autoLabelWidth: string | undefined; formMitt: Emitter; emit: (evt: string, ...args: any[]) => void; labelSuffix: string; inline?: boolean; model?: Record; size?: string; showMessage?: boolean; labelPosition?: string; labelWidth?: string; rules?: Record; statusIcon?: boolean; hideRequiredAsterisk?: boolean; disabled?: boolean; } export interface ValidateFieldCallback { (message?: string, invalidFields?: FieldErrorList): void; } export interface PsFormItemContext { prop?: string; formItemMitt: Emitter; size: ComponentSize; validateState: string; validate(trigger?: string, callback?: ValidateFieldCallback): void; updateComputedLabelWidth(width: number): void; addValidateEvents(): void; removeValidateEvents(): void; resetField(): void; clearValidate(): void; } export declare const psFormKey: InjectionKey; export declare const psFormItemKey: InjectionKey; export declare const psFormEvents: { readonly addField: "ps.form.addField"; readonly removeField: "ps.form.removeField"; };