import type { PropType } from 'vue'; import type { ValidationAlias } from '../labs/rules/index.js'; import type { EventProp, MaybeRef } from '../util/index.js'; export type ValidationResult = string | boolean; export type ValidationRule = ValidationResult | PromiseLike | ((value: any) => ValidationResult) | ((value: any) => PromiseLike); type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'; type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager'; export interface ValidationProps { disabled: boolean | null; error: boolean; errorMessages: string | readonly string[] | null; focused: boolean; maxErrors: string | number; name: string | undefined; label: string | undefined; readonly: boolean | null; rules: readonly (ValidationRule | ValidationAlias)[]; modelValue: any; 'onUpdate:modelValue': EventProp | undefined; validateOn?: ValidateOn; validationValue: any; } export declare const makeValidationProps: (defaults?: Defaults | undefined) => { focused: unknown extends Defaults["focused"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["focused"] ? boolean : boolean | Defaults["focused"]; }; 'onUpdate:focused': unknown extends Defaults["onUpdate:focused"] ? PropType<(args_0: boolean) => void> : { type: PropType void : ((args_0: boolean) => void) | Defaults["onUpdate:focused"]>; default: unknown extends Defaults["onUpdate:focused"] ? (args_0: boolean) => void : ((args_0: boolean) => void) | Defaults["onUpdate:focused"]; }; disabled: unknown extends Defaults["disabled"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["disabled"] ? boolean | null : Defaults["disabled"] | NonNullable; }; error: unknown extends Defaults["error"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]; }; errorMessages: unknown extends Defaults["errorMessages"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["errorMessages"] ? string | readonly string[] | null : Defaults["errorMessages"] | NonNullable; }; maxErrors: unknown extends Defaults["maxErrors"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["maxErrors"] ? string | number : Defaults["maxErrors"] | NonNullable; }; name: unknown extends Defaults["name"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["name"] ? string : string | Defaults["name"]; }; label: unknown extends Defaults["label"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["label"] ? string : string | Defaults["label"]; }; readonly: unknown extends Defaults["readonly"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["readonly"] ? boolean | null : Defaults["readonly"] | NonNullable; }; rules: unknown extends Defaults["rules"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "default" | "type"> & { type: PropType | ((value: any) => ValidationResult) | ((value: any) => PromiseLike) | [string, any, (string | undefined)?])[] : readonly (string | boolean | PromiseLike | ((value: any) => ValidationResult) | ((value: any) => PromiseLike) | [string, any, (string | undefined)?])[] | Defaults["rules"]>; default: unknown extends Defaults["rules"] ? readonly (string | boolean | PromiseLike | ((value: any) => ValidationResult) | ((value: any) => PromiseLike) | [string, any, (string | undefined)?])[] : readonly (string | boolean | PromiseLike | ((value: any) => ValidationResult) | ((value: any) => PromiseLike) | [string, any, (string | undefined)?])[] | Defaults["rules"]; }; modelValue: unknown extends Defaults["modelValue"] ? null : { type: PropType; default: unknown extends Defaults["modelValue"] ? any : any; }; validateOn: unknown extends Defaults["validateOn"] ? PropType : { type: PropType; default: unknown extends Defaults["validateOn"] ? ValidateOn | undefined : Defaults["validateOn"] | NonNullable; }; validationValue: unknown extends Defaults["validationValue"] ? null : { type: PropType; default: unknown extends Defaults["validationValue"] ? any : any; }; }; export declare function useValidation(props: ValidationProps, name?: string, id?: MaybeRef): { errorMessages: import("vue").ComputedRef; isDirty: import("vue").ComputedRef; isDisabled: import("vue").ComputedRef; isReadonly: import("vue").ComputedRef; isPristine: import("vue").ShallowRef; isValid: import("vue").ComputedRef; isValidating: import("vue").ShallowRef; reset: () => Promise; resetValidation: () => Promise; validate: (silent?: boolean) => Promise; validationClasses: import("vue").ComputedRef<{ [x: string]: boolean; }>; };