/**
 * Работа с датами
 * @packageDocumentation
 */
/**
 * Уровень детализации времени
 *
 * - 0: только дата
 * - 1: дата и часы
 * - 2: дата и часы с минутами
 * - 3: дата и часы с минутами и секундами
 */
type Time = 0 | 1 | 2 | 3;
/**
 * Получить день недели
 */
export declare const getDayOfWeek: (y: number, m: number, d: number) => string;
/**
 * Преобразовать дату в строку формата Y-m-d H:i:s
 * @param dateObject - объект Date
 * @param langFormat - если true, формат даты будет взят из Core.state.dateFormat
 * @param timeFormat - уровень детализации времени
 */
export declare const dateToString: (dateObject: Date, langFormat?: boolean, timeFormat?: Time) => string;
/**
 * Получить объект Date из строки
 * @param date - строка с датой
 */
export declare function stringToDate(date: string): Date;
/**
 * Генерация даты-строки из миллисекунд (UTC), в формате Y-m-d H:i:s с учётом часового пояса пользователя
 *
 * Для настройки часового пояса пользователя используется `Core.state.timezoneOffset`
 *
 * @see genDate()
 */
export declare const genUserDate: (timestamp?: number, useFormat?: boolean, time?: Time | "auto") => string;
/**
 * Генерация даты-строки из миллисекунд (UTC), в формате Y-m-d H:i:s
 * @param timestamp - дата в мс, если не передана, берется дата на момент вызова функции
 * @param useFormat - если true, формат даты будет взят из Core.state.dateFormat
 * @param time - уровень детализации времени
 * - auto: часы и минуты будут выводиться, только если они не равны нулю
 * @param timezoneOffset - смещение часового пояса от UTC в минутах.
 * Если не указано используется локальный часовой пояс пользователя
 */
export declare function genDate(timestamp?: number, useFormat?: boolean, time?: Time | 'auto', timezoneOffset?: number): string;
/**
 * Генерация даты-строки (время московское) из миллисекунд (UTC), в формате Y-m-d H:i:s
 * @param ms - дата в мс, если не передана, берется дата на момент вызова функции
 * @param langFormat - если true, формат даты будет взят из Core.state.dateFormat
 */
export declare function genDateMoscow(ms: number | undefined, useFormat?: boolean): string;
/**
 * Перевод даты в формат пользователя
 * @param dateMixed - объект даты или строка в формате Y-m-d H:i:s
 * @param time - уровень детализации времени
 * @param dateFormat - формат даты, если не указан, будет взят из Core.state.dateFormat
 * @param emptyValue - значение, которое надо вернуть, если дата не указана
 *
 * @todo Привести к единой логике обработку строк и дат
 */
export declare function dateFormat(dateMixed: string | Date, time?: Time, dateFormat?: string, emptyValue?: string): string;
/**
 * Перевод даты из формата пользователя в системный формат Y-m-d H:i:s
 * @param date - строка с датой
 * @param emptyValue - значение, которое надо вернуть, если дата не указана
 */
export declare function dateUnformat(date: string, emptyValue?: string): string;
export {};
