import { AbstractControl, UntypedFormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';
/***
 *
 * @description Class Contains all common form validation used in the project.
 * @author Prerak Tiwari
 */
export declare class AppValidators {
    static confirmPasswordValidator(c: AbstractControl): {
        invalid: boolean;
    };
    static passwordAndConfirmPasswordMustMatch(formGroup: UntypedFormGroup): {
        passwordNotMatch: boolean;
    };
    static confirmValidator(controlName: string, matchingControlName: string): (formGroup: UntypedFormGroup) => void;
    static selectAtleastOne(validator: ValidatorFn): (group: UntypedFormGroup) => ValidationErrors | null;
    static atLeastOneNonZeroValueValidator(minRequired?: number, name?: string): ValidatorFn;
    static requiredIfValidator(predicate: any): (formControl: any) => ValidationErrors;
    /**
     *
     * @param regex Regular Expression against which value needs to be validated
     * @param error Error which should be returned in case validation fails
     *
     * @description Form validator to validate control value against a regular expression
     *
     * @author Prerak Tiwari
     */
    static match(regex: RegExp, error: ValidationErrors): ValidatorFn;
    /***
    * This method checks if the entered routing number is valid or not as per following logic
    *
    * (3 * (d1 + d4 + d7) + 7 * (d2 + d5 + d8) + 1 * (d3 + d6 + d9) ) mod 10 = 0
    *
    *  This formula is taken from https://en.wikipedia.org/wiki/Routing_transit_number#MICR_Routing_number_format
    */
    static isValidRoutingNumber(control: AbstractControl): {
        [s: string]: boolean;
    };
    static isValidZipCode(control: AbstractControl): {
        [s: string]: boolean;
    };
    static isValidCanadianZipCode(control: AbstractControl): {
        [s: string]: boolean;
    };
    static isCanadaZipCode(string: any): boolean;
    static isNumber(number: any): boolean;
    static isBetween(from: Date, to: Date): ValidatorFn;
    static isBetweenDate(from: Date, to: Date): ValidatorFn;
    static equal(matchingControlName: string, error: ValidationErrors): ValidatorFn;
    /**
     *
     * @param matchingControlName Form control name against which current form control value should be matched
     * @param error Error which should be returned in case validation fails
     *
     * @description Form validator to validate control value against a other control value
     *
     * @author Prerak Tiwari
     */
    static notEqual(matchingControlName: string, error: ValidationErrors): ValidatorFn;
    static isAfter(first: Date): (control: AbstractControl) => {
        [key: string]: any;
    };
    static test(control: AbstractControl): {
        [key: string]: any;
    } | null;
    static areAllDigitsSame(str: string): boolean;
}
//# sourceMappingURL=AppValidators.d.ts.map