import { Injector, Provider } from '@angular/core';
import { createArrayValidators } from './array';
import { createBooleanValidators } from './boolean';
import { createDateValidators } from './date';
import { createGeneralValidators } from './general';
import { createMergeValidators } from './merge-validators';
import { createNumberValidators } from './number';
import { createStringValidators } from './string';
type MessageFactories = {
    general: Parameters<typeof createGeneralValidators>[0];
    string: Parameters<typeof createStringValidators>[0];
    number: Parameters<typeof createNumberValidators>[0];
    date: Parameters<typeof createDateValidators>[0];
    array: Parameters<typeof createArrayValidators>[0];
    boolean: Parameters<typeof createBooleanValidators>[0];
    merge: Parameters<typeof createMergeValidators>[0];
};
export type Validators<TDate = Date> = {
    general: ReturnType<typeof createGeneralValidators>;
    string: ReturnType<typeof createStringValidators>;
    number: ReturnType<typeof createNumberValidators>;
    date: ReturnType<typeof createDateValidators<TDate>>;
    array: ReturnType<typeof createArrayValidators>;
    boolean: ReturnType<typeof createBooleanValidators>;
};
export declare function provideValidatorConfig<TDate = Date>(factory: (locale: string) => Partial<MessageFactories> | void | undefined, toDate?: (date: TDate | string) => Date, formatDate?: (date: Date, locale: string) => string): Provider;
export declare function injectValidators(injector?: Injector): Validators<Date>;
export {};
