import Multitone from '../../../services/Multitone'; import type { RulesT, RuleValidator } from './types'; type MessagesT = { default: string; [locale: string]: string; }; type ValidatorsObj = { [validator: string]: (params: object, val: string) => true | string; }; type ValidatorsResult = { [validator: string]: (val: string) => true | string; }; type ErrorMessageFunction = () => string; type ExtraParams = { regex?: RegExp; message?: string | ErrorMessageFunction; }; type RegexParams = RegExp | ({ pattern: RegExp; } & ExtraParams); declare class Validators extends Multitone { locale: string; changeLocaleCallbacks: Array<() => void>; vd: ValidatorsObj; withMessage(validator: any, messageKey: string, extraParams: ExtraParams, value: unknown): true | string; parseRules(rules: RulesT): ValidatorsResult; parseStringRule(ruleName: string, result: ValidatorsResult, message?: string | ErrorMessageFunction): void; parseFunctionRule(key: string, validatorOrMessage: RuleValidator | ErrorMessageFunction, result: ValidatorsResult): void; parseRegexRule(regex: RegexParams, result: ValidatorsResult): void; subscribeOnLanguageChange(clb: () => void): void; triggerLanguageChange(): void; } export declare const getValidators: (key?: string) => Validators; type ExtraMessagesT = { [locale: string]: string; }; /** * Добавление переводов для глобальных валидаторов * * @param key - название валидатора * @param extraMessages - сообщения (для нового валидатора обязательно добавить default значение) */ export declare const addMessages: (key: string, extraMessages: ExtraMessagesT | MessagesT) => void; export declare const changeLocale: (locale: string) => void; export declare const changeDefaultLocale: (locale: string) => void; export {};