import type { InjectionKey, Ref } from 'vue'; import type { LocaleInstance } from "../../composables/locale.js"; import type { ValidationProps, ValidationRule } from "../../composables/validation.js"; export type ValidationRuleBuilderWithoutOptions = (err?: string) => ValidationRule; export type ValidationRuleBuilderWithOptions = (options: T, err?: string) => ValidationRule; export type ValidationRuleBuilder = ValidationRuleBuilderWithoutOptions | ValidationRuleBuilderWithOptions; export interface RuleAliases { [name: string]: ValidationRuleBuilder; required: ValidationRuleBuilderWithoutOptions; email: ValidationRuleBuilderWithoutOptions; number: ValidationRuleBuilderWithoutOptions; integer: ValidationRuleBuilderWithoutOptions; capital: ValidationRuleBuilderWithoutOptions; maxLength: ValidationRuleBuilderWithOptions; minLength: ValidationRuleBuilderWithOptions; strictLength: ValidationRuleBuilderWithOptions; exclude: ValidationRuleBuilderWithOptions; notEmpty: ValidationRuleBuilderWithoutOptions; pattern: ValidationRuleBuilderWithOptions; } export type RulesOptions = { aliases?: Partial; }; type ValidationRuleParams = [any, string?]; export type ValidationAlias = string | [string, ...ValidationRuleParams]; export type RulesInstance = (fn: () => ValidationProps['rules']) => Readonly>; export declare function createRules(options: RulesOptions | undefined, locale: LocaleInstance): (fn: () => ValidationProps["rules"]) => import("vue").ComputedRef<(ValidationRule | [string, any, (string | undefined)?])[]>; export declare const RulesSymbol: InjectionKey; export declare function useRules(fn: () => ValidationProps['rules']): Readonly> | Readonly | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike) | [string, any, (string | undefined)?])[], readonly (string | boolean | PromiseLike | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike) | [string, any, (string | undefined)?])[]>>;