import { AbstractControl, ValidationErrors, ValidatorFn } from "@angular/forms";
import { CalendarLocaleOptions } from "@seniorsistemas/angular-components";
import { CompareType } from "../../../core/enums/comparetype.enumeration";
import { DateCompareOptions } from "../../../core/interfaces/date-compare-options";
export declare class DateValidator {
    /**
     * Validador genérico usando comparação entre datas
     * @param compareToDate Data a ser comparada
     * @param dateFormat Informações do local
     * @param compareType Tipo de comparação
     * @param options Opções para a comparação
     * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida
     */
    static isValidDateCompare(compareToDate: string, dateFormat: string, compareType: CompareType, options?: DateCompareOptions): ValidatorFn;
    /**
     * Retorna o formato da data de acordo com o local
     * @param calendar Informações de calendário
     * @param removeDayPart Remove os dias do formato da data (Opcional)
     * @returns Exemplo de retornos 'DDMMYYYY', 'MMYYYY', ou seja, retorna o formato somente com letras
     */
    static getDateFormatFromLocale(calendar: CalendarLocaleOptions, removeDayPart?: boolean): string;
    /**
     * Retorna o formato da data/hora de acordo com o local
     * @param calendar Informações de calendário
     * @returns Exemplo de retornos 'DD/MM/YYYY HH:mm:ss'
     */
    static getDateTimeFormatFromLocale(calendar: CalendarLocaleOptions): string;
    /**
     * Retorna o formato da data de acordo com o local
     * @param calendar Informações de calendário
     * @returns Exemplo de retornos 'DD/MM/YYYY'
     */
    static getDateFormatFromCalendar(calendar: CalendarLocaleOptions): string;
    /**
     * Método auxiliar que realiza a comparação entre as datas e retorna um objeto caso a validação seja válida
     * @param referenceDate Data de referência para a comparação
     * @param compareToDate Data a ser comparada.
     * @param compareType Tipo de comparação.
     * @param options Opções para a comparação
     */
    private static dateCompare;
    /**
     * Retorna uma mascara com as barras Ex: ‘DD/MM/YYYY‘
     * @param calendar
     */
    static getFormatDateWithBar(calendar: CalendarLocaleOptions): string;
}
export declare function startDateTimeIsBeforeEndDateTimeValidator(startDateTime: AbstractControl, endDateTime: AbstractControl): ValidationErrors | null;
export declare function startDateIsBeforeOrEqualToEndDateValidator(startDate: AbstractControl, endDate: AbstractControl): ValidationErrors | null;
export declare function removeErrorFromField(field: AbstractControl, error: string): void;
export declare function startDateIsBeforeEndDateValidator(startDate: AbstractControl, endDate: AbstractControl): ValidationErrors | null;
