/**
 * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
 * @access private
 */
/**
 * @typedef {object} DateObjectConfigOptions
 * @property {ErrorMessageConfig} errorMsg Error message config
 * @property {object} [afterOffsetFromNow] Offset from now
 * @property {ErrorMessageConfig} [errorMsgAfterOffset] Error if date is after
 *   this offset
 * @property {object} [beforeOffsetFromNow] Offset from now
 * @property {ErrorMessageConfig} [errorMsgBeforeOffset] Error if date is before
 *   this offset
 * @property {boolean} [allowMonthNames=false] Allow "Jan", "January", etc.
 *   Default is `false`
 * @property {boolean} [allowSingleDigitDay=false] Allow "1" rather than "01".
 *   Default is `false`
 * @property {boolean} [allowSingleDigitMonth=false] Allow "1" rather than "01".
 *   Default is `false`
 * @property {DateTime} [now=false] Override the notion of "now" (useful for
 *   testing). Default is `false`
 */
/**
 * Date object format: { dd: <string>, mm: <string>, yyyy: <string> }.
 *
 * Note that the time part will be zero'ed, as we are only interested in the
 * date component (minimum day resolution).
 *
 * See {@link DateObjectConfigOptions} for `make()` options.
 *
 * @memberof Validators
 * @augments ValidatorFactory
 */
export default class DateObject extends ValidatorFactory {
    /** @property {string} name Validator name ("dateObject") */
    name: string;
    validate(value: any, dataContext?: {}): ValidationError[];
    sanitise(value: any): any;
}
export type ErrorMessageConfig = import("../../casa").ErrorMessageConfig;
export type DateObjectConfigOptions = {
    /**
     * Error message config
     */
    errorMsg: ErrorMessageConfig;
    /**
     * Offset from now
     */
    afterOffsetFromNow?: object | undefined;
    /**
     * Error if date is after
     * this offset
     */
    errorMsgAfterOffset?: import("../../casa").ErrorMessageConfig | undefined;
    /**
     * Offset from now
     */
    beforeOffsetFromNow?: object | undefined;
    /**
     * Error if date is before
     * this offset
     */
    errorMsgBeforeOffset?: import("../../casa").ErrorMessageConfig | undefined;
    /**
     * Allow "Jan", "January", etc.
     * Default is `false`
     */
    allowMonthNames?: boolean | undefined;
    /**
     * Allow "1" rather than "01".
     * Default is `false`
     */
    allowSingleDigitDay?: boolean | undefined;
    /**
     * Allow "1" rather than "01".
     * Default is `false`
     */
    allowSingleDigitMonth?: boolean | undefined;
    /**
     * Override the notion of "now" (useful for
     * testing). Default is `false`
     */
    now?: DateTime<boolean> | undefined;
};
import ValidatorFactory from "../ValidatorFactory.js";
import ValidationError from "../ValidationError.js";
import { DateTime } from "luxon";
