declare class DateTimez extends Date {
    #private;
    constructor(year?: number | string | Date, month?: number, date?: number, hour?: number, minute?: number, second?: number);
    get year(): number;
    set year(_: number);
    get month(): number;
    set month(_: number);
    get date(): number;
    set date(_: number);
    get hour(): number;
    set hour(_: number);
    get minute(): number;
    set minute(_: number);
    get second(): number;
    set second(_: number);
    get millisecond(): number;
    set millisecond(_: number);
    get monthString(): string;
    set monthString(_: string);
    get dayString(): string;
    set dayString(_: string);
    get lastDateOfMonth(): number;
    set lastDateOfMonth(_: number);
    get locale(): string;
    set locale(code: string);
    get unix(): number;
    set unix(_: number);
    /**
     * Set locale value using id of a string with a BCP 47 language tag, or an array of such strings.
     *
     * For more info about locale:
     * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation
    */
    setLocale(code: string): DateTimez;
    /**
     * Modify `DateTimez` by adding date(s) according to `num`.
    */
    addDate(num: number): DateTimez;
    /**
     * Modify `DateTimez` by adding month(s) according to `num`.
    */
    addMonth(num: number): DateTimez;
    /**
     * Modify `DateTimez` by adding year(s) according to `num`.
    */
    addYear(num: number): DateTimez;
    /**
     * Modify `DateTimez` by subtracting year(s) according to `num`.
    */
    subtractYear(num: number): DateTimez;
    /**
     * Modify `DateTimez` by subtracting date(s) according to `num`.
    */
    subtractDate(num: number): DateTimez;
    /**
     * Modify `DateTimez` by subtracting month(s) according to `num`.
    */
    subtractMonth(num: number): DateTimez;
    /**
     * Takes a string of tokens and replaces them with their corresponding values. You can freely decide the separators.
    */
    format(format: string, locale?: string): string;
    /**
     * Check if a `DateTimez` is before another `Date`. Return `false` if equal.
     *
     * Units of measurements: Year, Month, Date, Hour, Minute, Second
    */
    isBefore(d: Date): boolean;
    /**
     * Check if a `DateTimez` is after another `Date`. Return `false` if equal.
     *
     * Units of measurements: Year, Month, Date, Hour, Minute, Second
    */
    isAfter(d: Date): boolean;
    /**
     * Check if whether a `DateTimez` is equal to another `Date`.
     *
     * Units of measurements: Year, Month, Date, Hour, Minute, Second
    */
    isEqual(d: Date): boolean;
    /**
     * Check if a DateTimez is between 2 other Dates.
     * Return true if equal to first parameter or second parameter.
     *
     * Units of measurements: Year, Month, Date, Hour, Minute, Second
    */
    isBetween(d1: Date, d2: Date): boolean;
}
export default function(year?: string | number | Date | undefined, month?: number | undefined, date?: number | undefined, hour?: number | undefined, minute?: number | undefined, second?: number | undefined): DateTimez;
