import { ComputedRef } from 'vue'; export type ValidatorResult = boolean | string | Promise; export type ValidatorFn = (value: any, vm?: any, sibling?: any) => ValidatorResult; export interface WrappedValidator extends ValidatorFn { $validatorName?: string; $params?: Record; $message?: string | ((params?: any) => string); $async?: boolean; } export type RulesObject = { [key: string]: ValidatorFn[] | ValidatorFn | RulesObject | (() => ValidatorFn[] | RulesObject); }; export interface FieldValidation { $model: any; $dirty: boolean; $touched: boolean; $error: boolean; $invalid: boolean; $errors: Array<{ $message: string; $validator: string; $params?: any; $pending?: boolean; }>; $pending: boolean; $params?: Record; $touch(): void; $reset(): void; $validate(): Promise; } export type ValidationNode = FieldValidation | ValidationGroup; export type ValidationGroup = { [key: string]: ValidationNode; } & { $validate(): Promise; $touch(): void; $reset(): void; $anyDirty: ComputedRef; $anyInvalid: ComputedRef; $anyError: ComputedRef; $pending: ComputedRef; $silentErrors?: boolean; $externalResults?: Array; $addExternalResults?(res: any): void; $clearExternalResults?(): void; }; //# sourceMappingURL=types.d.ts.map