import moment from 'moment';
declare class MomentExtension {
    private typesOfTime;
    constructor();
    /**
     * Возвращает timestamp начала текущего дня
     * @returns {number} timestamp начала текущего дня
     */
    getTodayTimestamp(): number;
    /**
     * Возвращает timestamp начала вчерашнего дня
     * @returns {number} timestamp начала вчерашнего дня
     */
    getYesterdayTimestamp(): number;
    /**
     * Возвращает timestamp начала прошлой недели
     * @returns {number} timestamp начала прошлой недели
     */
    getLastWeekdayTimestamp(): number;
    /**
     * Возвращает timestamp начала прошлой недели
     * @returns {number} timestamp начала прошлой недели
     */
    getEndLastWeekdayTimestamp(): number;
    /**
     * Преобразует дату в формат "YYYY-MM-DD"
     * @param {string} date - Дата в формате "DD.MM.YYYY" | "DD.MM.YYYYTHH:mm:ssZ"
     * @returns {string} Дата в формате "YYYY-MM-DD"
     */
    reverseToSplash(date: string): string;
    /**
     * Преобразует дату в формат "DD.MM.YYYY"
     * @param {string} date - Дата в формате "YYYY-MM-DD" | "YYYY-MM-DDTHH:mm:ssZ"
     * @returns {string} Дата в формате "DD.MM.YYYY"
     */
    reverseToDotted(date: string): string;
    /**
     * Получаем точный timestamp даты
     * (используем только, когда нужен timestamp с секундами) иначе используем метод startDate
     * @param {!string} date - Дата в формате передаваемой маски.
     * @param {string} [mask=undefined] - Формат маски на входе. Например: "2024-01-01T21:12:18Z". (optional)
     * @param {string} [format=x] - Формат маски на выходе. Default: "x". (optional)
     * @returns {string} Дата в формате "x"
     * @example
     * convertDateToTimestamp("2024-01-01")  // 1704056400000
     * convertDateToTimestamp("2024-01-01T12:00:00", "YYYY-MM-DDTHH:mm:ss", "x")  // 1704099600000
     */
    convertDateToTimestamp(date: string, mask?: string | undefined, format?: string): string;
    /**
     * Преобразует timestamp в нужный формат даты. Default: 'YYYY-MM-DD'
     * @param {!string|number} date - Timestamp даты.
     * @param {string} [mask=x] - Формат маски на входе. Например: "x" | "X". (optional)
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD". (optional)
     * @returns {string} Дата в формате "YYYY-MM-DD"
     */
    convertTimestampToDate(date: string | number, mask?: string, format?: string): string;
    /**
     * Преобразует текущую дату в нужный формат. Default: 'YYYY-MM-DD'
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Defaults: "YYYY-MM-DD". (optional)
     * @returns {string} Дата в формате "YYYY-MM-DD"
     */
    formatCurrentDate(format?: string): string;
    /**
     * Преобразует входящую дату в нужный формат. Default: 'YYYY-MM-DD'
     * @param {!string|number} date - Дата в формате передаваемой маски.
     * @param {!string} mask - Формат маски на входе. (required)
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Defaults: "YYYY-MM-DD". (optional)
     * @returns {string} The formatted date.
     */
    formatDateTo(date: string | number, mask: string, format?: string): string;
    /**
     * Форматирует дату в формате временной зоны.
     * @param {!string|number} date - Дата в формате передаваемой маски.
     * @param {string} [mask=undefined] - Формат маски на входе.
     * @returns {string} Дата в формате "YYYY-MM-DDTHH:mm:ss".
     */
    formatDateToTimezone(date: string | number, mask?: string | undefined): string;
    /**
     * Возвращает начало дня для указанной даты.
     * @param {!string|number} date - Дата в формате передаваемой маски.
     * @param {!string} mask - Формат маски на входе.
     * @param {string} [format=YYYY-MM-DDTHH:mm:ss] - Формат маски на выходе. Default: "YYYY-MM-DDTHH:mm:ss".
     * @param {string} type - Тип окончания
     * @returns {string} Начало дня в указанном формате.
     */
    startDate(date: string | number, mask: string | undefined, format?: string, type?: moment.unitOfTime.StartOf): string;
    /**
     * Возвращает конец дня для указанной даты.
     * @param {!string|number} date - Дата в формате передаваемой маски.
     * @param {!string} mask - Формат маски на входе.
     * @param {string} [format=YYYY-MM-DDTHH:mm:ss] - Формат маски на выходе. Default: "YYYY-MM-DDTHH:mm:ss".
     * @param {string} type - Тип окончания
     * @returns {string} Конец дня в указанном формате.
     */
    endDate(date: string | number, mask: string | undefined, format?: string, type?: moment.unitOfTime.StartOf): string;
    /**
     * Возвращает начало указанного типа времени для текущей даты.
     * @param {!string} type - Тип времени.
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Начало указанного типа времени в указанном формате.
     */
    currentStartDateOf(type: string, format?: string): string;
    /**
     * Возвращает конец указанного типа времени для текущей даты.
     * @param {!string} type - Тип времени.
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Конец указанного типа времени в указанном формате.
     */
    currentEndDateOf(type: string, format?: string): string;
    /**
     * Добавляет указанное количество единиц времени к текущей дате.
     * @param {!number} amount - Количество единиц времени.
     * @param {!string} type - Единица времени. Default: "day".
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Дата в указанном формате.
     */
    addToCurrentDate(amount: number, type: string, format?: string): string;
    /**
     * Отнимает указанное количество единиц времени от текущей даты.
     * @param {!number} amount - Количество единиц времени.
     * @param {!string} type - Единица времени. Default: "day".
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Дата в указанном формате.
     */
    subtractToCurrentDate(amount: number, type: string, format?: string): string;
    /**
     * Добавляет указанное количество единиц времени к указанной дате.
     * @param {!string|number} date - Дата в формате передаваемой маски.
     * @param {!string} mask - Формат маски на входе.
     * @param {!number} amount - Количество единиц времени.
     * @param {!string} type - Единица времени. Default: "day".
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Дата в указанном формате.
     */
    addToDate(date: string | number, mask: string, amount: number, type: string, format?: string): string;
    /**
     * Отнимает указанное количество единиц времени от указанной даты.
     * @param {!string|number} date - Дата в формате передаваемой маски.
     * @param {!string} mask - Формат маски на входе.
     * @param {!number} amount - Количество единиц времени.
     * @param {!string} type - Единица времени. Default: "day".
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Дата в указанном формате.
     */
    subtractToDate(date: string | number, mask: string, amount: number, type: string, format?: string): string;
    /**
     * Добавляет указанное количество единиц времени к указанной дате.
     * @param {!string} date - Дата в формате "YYYY-MM-DD".
     * @param {!number} amount - Количество единиц времени.
     * @param {string} [type=day] - Единица времени. Default: "day".
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Дата в указанном формате.
     */
    addToSplashDate(date: string, amount: number, type?: string, format?: string): string;
    /**
     * Отнимает указанное количество единиц времени от указанной даты.
     * @param {!string} date - Дата в формате "YYYY-MM-DD".
     * @param {!number} amount - Количество единиц времени.
     * @param {string} [type=day] - Единица времени. Default: "day".
     * @param {string} [format=YYYY-MM-DD] - Формат маски на выходе. Default: "YYYY-MM-DD".
     * @returns {string} Дата в указанном формате.
     */
    subtractToSplashDate(date: string, amount: number, type?: string, format?: string): string;
    /**
     * Проверяет валидность даты в формате "YYYY-MM-DD".
     * @param {!string} date - Дата в формате "YYYY-MM-DD".
     * @param {string} [mask=YYYY-MM-DD] - Формат маски на входе. Default: "YYYY-MM-DD"
     * @returns {boolean} Результат проверки.
     */
    validateSplashDate(date: string, mask?: string): boolean;
    /**
     * Вычисляет разницу между двумя датами в указанной единице времени.
     * @param {!string} date1 - Первая дата в указанном формате.
     * @param {!string} date2 - Вторая дата в указанном формате.
     * @param {string} [type=day] - Единица времени. Default: "day".
     * @param {string} [mask=YYYY-MM-DD] - Формат дат. Default: "YYYY-MM-DD".
     * @returns {number} Разница между двумя датами в указанной единице времени.
     */
    diffDate(date1: string, date2: string, type?: string, mask?: string): number;
}
export declare const Moment: MomentExtension;
export {};
