import { AbstractControl, Validators as AngularValidators } from '@angular/forms';
import { InjectionToken } from '@angular/core';
export declare const VALIDATORS_CONFIG: InjectionToken<Partial<{
    phone: {
        min: number;
        max: number;
    };
    nationalCode: {
        min: number;
        max: number;
    };
    password: {
        regex: RegExp;
        min: number;
    };
}>>;
export declare class Validators extends AngularValidators {
    private static config;
    static nationalCode(min?: number, max?: number): (control: AbstractControl) => {
        codeMelli: {
            value: any;
        };
    } | null;
    static clone(controller: AbstractControl): () => {
        clone: boolean;
    } | null;
    static ip(control: AbstractControl): {
        ip: {
            value: any;
        };
    } | null;
    static alphabet(lang?: 'en'): (control: AbstractControl) => {
        alphabet: {
            value: any;
        };
    } | null;
    static match(secondControl: AbstractControl): (control: AbstractControl) => {
        unmatched: {
            value: any;
        };
    } | null;
    static number(minLength?: number, maxLength?: number): (control: AbstractControl) => {
        number: {
            value: any;
        };
    } | null;
    static password(minLength?: number, regex?: RegExp): (control: AbstractControl) => {
        passwordChars: {
            value: any;
        };
        passwordLength?: undefined;
    } | {
        passwordLength: {
            value: any;
        };
        passwordChars?: undefined;
    } | null;
    static phone(min?: number, max?: number): (control: AbstractControl) => {
        phoneNumber: {
            value: any;
        };
    } | null;
    static requiredNullable(control: AbstractControl): {
        required: boolean;
    } | null;
}
