import { ValidatorFn } from '@angular/forms';
import { QdDisabledDates, QdDisabledTimes } from '../../model/datepicker';
export declare class QdValidators {
    /**
     * Validates that the value of the form field is at least the specified minimum.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.min(3));
     * new QdFormControl('', QdValidators.min(3, 'custom-error'));
     * ```
     */
    static min(min: number, errorKey?: string): ValidatorFn;
    /**
     * Validates that the value of the form field does not exceed the specified maximum.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.max(10));
     * new QdFormControl('', QdValidators.max(10, 'custom-error'));
     * ```
     */
    static max(max: number, errorKey?: string): ValidatorFn;
    /**
     * Ensures that the form field is not empty.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.required());
     * new QdFormControl('', QdValidators.required('custom-error'));
     * ```
     */
    static required(errorKey?: string): ValidatorFn;
    private static isEmptyInputValue;
    /**
     * Validates that the form field contains a valid email address.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.email());
     * new QdFormControl('', QdValidators.email('custom-error'));
     * ```
     */
    static email(errorKey?: string): ValidatorFn;
    /**
     * Ensures that the form field contains at least the specified number of characters.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.minLength(3));
     * new QdFormControl('', QdValidators.minLength(3, 'custom-error'));
     * ```
     */
    static minLength(minLength: number, errorKey?: string): ValidatorFn;
    /**
     * Ensures that the form field contains no more than the specified number of characters.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.maxLength(10));
     * new QdFormControl('', QdValidators.maxLength(10, 'custom-error'));
     * ```
     */
    static maxLength(maxLength: number, errorKey?: string): ValidatorFn;
    /**
     * Ensures that the form field matches a given regular expression pattern.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.pattern(/\d/));
     * new QdFormControl('', QdValidators.pattern('[A-Za-z]+'));
     * new QdFormControl('', QdValidators.pattern(/\d/, 'custom-error'));
     * ```
     */
    static pattern(pattern: string | RegExp, errorKey?: string): ValidatorFn;
    /**
     * Ensures that the form field contains a valid date.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.date());
     * new QdFormControl(new Date(), QdValidators.date());
     * new QdFormControl(new Date(), QdValidators.date('date-error'));
     * ```
     */
    static date(errorKey?: string): ValidatorFn;
    /**
     * Ensures that the selected date is not within a range of disabled dates.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.disabledDates([{ from: new Date('2025-01-01') }]));
     * ```
     */
    static disabledDates(disabledDates: QdDisabledDates[], errorKey?: string): ValidatorFn;
    private static isDateDisabled;
    /**
     * Ensures that the selected time is not within a range of disabled times.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl('', QdValidators.disabledTimes([{ from: '15:00' }]));
     * ```
     */
    static disabledTimes(disabledTimes: QdDisabledTimes[], errorKey?: string): ValidatorFn;
    /**
     * Ensures that the selected file does not exceed the given maximum size in megabytes.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl(null, QdValidators.fileSize(5));
     * new QdFormControl(null, QdValidators.fileSize(10, 'custom-error'));
     * ```
     */
    static fileSize(maxMb: number, errorKey?: string): ValidatorFn;
    /**
     * Validates that the file type or file extension matches one of the accepted types.
     *
     * #### **Usage**
     * ```ts
     * new QdFormControl(null, QdValidators.fileType(['image/*', '.pdf']));
     * new QdFormControl(null, QdValidators.fileType(['application/msword'], 'custom-error'));
     * ```
     */
    static fileType(accepted: string[], errorKey?: string): ValidatorFn;
}
//# sourceMappingURL=validators.d.ts.map