import { OnInit, OnChanges } from '@angular/core';
import { Validator, ValidatorFn, ValidationErrors, AbstractControl } from '@angular/forms';
import { L10nDateTimeFormatOptions } from '../models/types';
import { L10nValidation } from '../services/l10n-validation';
import * as i0 from "@angular/core";
/**
 * Function that takes a control and returns either null when it’s valid, or an error object if it’s not.
 * @param validation The instance of L10nValidation service
 * @param options A L10n or Intl DateTimeFormatOptions object
 * @param minDate The minimum date
 * @param maxDate The maximum date
 * @param language The current language
 * @return An error object: 'format', 'minDate' or 'maxDate'; null in case the date is valid
 */
export declare function l10nValidateDate(validation: L10nValidation, options?: L10nDateTimeFormatOptions, minDate?: Date, maxDate?: Date, language?: string): ValidatorFn;
export declare class L10nValidateDateDirective implements Validator, OnInit, OnChanges {
    protected validation: L10nValidation;
    set l10nValidateDate(options: L10nDateTimeFormatOptions | '');
    options?: L10nDateTimeFormatOptions;
    minDate?: Date;
    maxDate?: Date;
    language?: string;
    protected validator?: ValidatorFn;
    constructor(validation: L10nValidation);
    ngOnInit(): void;
    ngOnChanges(): void;
    validate(c: AbstractControl): ValidationErrors | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<L10nValidateDateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<L10nValidateDateDirective, "[l10nValidateDate][ngModel],[l10nValidateDate][formControl],[l10nValidateDate][formControlName]", never, { "l10nValidateDate": { "alias": "l10nValidateDate"; "required": false; }; "options": { "alias": "options"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "language": { "alias": "language"; "required": false; }; }, {}, never, never, true, never>;
}
