declare type AvailableMask = 'YYYY' | 'MM' | 'DD' | 'HH' | 'mm';
/**
 * @description На данный момент вся работа производится в UTC. Это было сделано для более лаконичного решения. Если
 * на проекте есть необходимость записывать дату в другом формате -
 * */
export default class DateController {
    /**
     * SPECIFICATION: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format
     * */
    static get ValidatedPrimaryMask(): AvailableMask[];
    /**
     * @description Функция предназначена для валидации маски. Вернёт true в случае успеха, или выкинет ошибку, если
     * маска не является валидной.
     * */
    static ValidateMask(mask: unknown): boolean;
    static SplitStringByMask(input: string, primaryMask: string): ({
        part: AvailableMask;
        input: string;
        construction: boolean;
        ended: boolean;
        last: boolean;
        skipped?: undefined;
    } | {
        part: string;
        skipped: boolean;
        input?: undefined;
        construction?: undefined;
        ended?: undefined;
        last?: undefined;
    })[];
    /**
     * @description Конвертация в строки в дату используя маску.
     * */
    static ConvertToDate(input: unknown, mask: string): Date | null;
    /**
     * @description Проверяет является ли переданная строка законченной маской. Это означает то, что для всех элементов
     * маски есть хотя бы один символ, а для последнего - все. То есть если к значению поля в конец добавить любую цифру
     * то данная строка будет уже не валидна.
     * */
    static CheckFullerMask(input: string, mask: string): boolean;
    static GetPrettyDate(date: Date, mask: string): string;
    /**
     * @description Используется только для красивой записи. По этому не используется getUTCFullYear, getUTCMonth и т.д.
     * */
    static GetValueByMaskPart(date: Date, part: AvailableMask | string): string | number;
    /**
     * @description Parse Mask to part.
     * @example mm/dd/yyyy HH:MM -> ["mm", "/", "dd", "yyyy", " ", "HH", ":", "MM"]
     * */
    static ParseMask(mask: string): string[];
    /**
     * @description Метод возвращает оставшуюся часть маски
     * */
    static GetRestMask(input: string, mask: string): string;
    static isUTCDate(str: string): boolean;
}
export {};
