import { type DateObjectUnits, DateTime, type DateTimeFormatOptions, type DateTimeMaybeValid } from 'luxon';
export type supportedLocale = 'EN' | 'TH';
export type dateFormat = 'tinyDate' | 'monthShortDate' | 'shortDate' | 'longDate';
export type dateTimeFormat = 'tinyDateTime' | 'shortDateTime' | 'longDateTime';
export declare const Datetime: () => {
    luxonDateTime: DateTimeMaybeValid;
    fromString: (dateTime: string | null, formatDate?: string, locale?: supportedLocale) => {
        luxonDateTime: DateTimeMaybeValid;
        fromString: /*elided*/ any;
        fromStringTime: (time: string | null, formatTime?: string, locale?: supportedLocale) => /*elided*/ any;
        fromISO: (dateTime: string, locale?: supportedLocale) => /*elided*/ any;
        fromObject: (dateTime: DateObjectUnits, locale?: supportedLocale) => /*elided*/ any;
        setDateTime: (inputDate: DateTime, locale?: supportedLocale) => /*elided*/ any;
        toFormat: (format: string, locale?: supportedLocale) => string;
        toISO: () => string | null;
        toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
        toTinyDate: (locale?: supportedLocale) => string;
        toMonthShortDate: (locale?: supportedLocale) => string;
        toShortDate: (locale?: supportedLocale) => string;
        toLongDate: (locale?: supportedLocale) => string;
        toTinyDateTime: (locale?: supportedLocale) => string;
        toShortDateTime: (locale?: supportedLocale) => string;
        toLongDateTime: (locale?: supportedLocale) => string;
        isAfter: (compareDate: string) => boolean;
        isBefore: (compareDate: string) => boolean;
        isEqual: (compareDate: string) => boolean;
        isFuture: () => boolean;
        isFutureDate: () => boolean;
        isHappen: () => boolean;
        isHappenDate: () => boolean;
        now: () => /*elided*/ any;
    };
    fromStringTime: (time: string | null, formatTime?: string, locale?: supportedLocale) => {
        luxonDateTime: DateTimeMaybeValid;
        fromString: (dateTime: string | null, formatDate?: string, locale?: supportedLocale) => /*elided*/ any;
        fromStringTime: /*elided*/ any;
        fromISO: (dateTime: string, locale?: supportedLocale) => /*elided*/ any;
        fromObject: (dateTime: DateObjectUnits, locale?: supportedLocale) => /*elided*/ any;
        setDateTime: (inputDate: DateTime, locale?: supportedLocale) => /*elided*/ any;
        toFormat: (format: string, locale?: supportedLocale) => string;
        toISO: () => string | null;
        toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
        toTinyDate: (locale?: supportedLocale) => string;
        toMonthShortDate: (locale?: supportedLocale) => string;
        toShortDate: (locale?: supportedLocale) => string;
        toLongDate: (locale?: supportedLocale) => string;
        toTinyDateTime: (locale?: supportedLocale) => string;
        toShortDateTime: (locale?: supportedLocale) => string;
        toLongDateTime: (locale?: supportedLocale) => string;
        isAfter: (compareDate: string) => boolean;
        isBefore: (compareDate: string) => boolean;
        isEqual: (compareDate: string) => boolean;
        isFuture: () => boolean;
        isFutureDate: () => boolean;
        isHappen: () => boolean;
        isHappenDate: () => boolean;
        now: () => /*elided*/ any;
    };
    fromISO: (dateTime: string, locale?: supportedLocale) => {
        luxonDateTime: DateTimeMaybeValid;
        fromString: (dateTime: string | null, formatDate?: string, locale?: supportedLocale) => /*elided*/ any;
        fromStringTime: (time: string | null, formatTime?: string, locale?: supportedLocale) => /*elided*/ any;
        fromISO: /*elided*/ any;
        fromObject: (dateTime: DateObjectUnits, locale?: supportedLocale) => /*elided*/ any;
        setDateTime: (inputDate: DateTime, locale?: supportedLocale) => /*elided*/ any;
        toFormat: (format: string, locale?: supportedLocale) => string;
        toISO: () => string | null;
        toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
        toTinyDate: (locale?: supportedLocale) => string;
        toMonthShortDate: (locale?: supportedLocale) => string;
        toShortDate: (locale?: supportedLocale) => string;
        toLongDate: (locale?: supportedLocale) => string;
        toTinyDateTime: (locale?: supportedLocale) => string;
        toShortDateTime: (locale?: supportedLocale) => string;
        toLongDateTime: (locale?: supportedLocale) => string;
        isAfter: (compareDate: string) => boolean;
        isBefore: (compareDate: string) => boolean;
        isEqual: (compareDate: string) => boolean;
        isFuture: () => boolean;
        isFutureDate: () => boolean;
        isHappen: () => boolean;
        isHappenDate: () => boolean;
        now: () => /*elided*/ any;
    };
    fromObject: (dateTime: DateObjectUnits, locale?: supportedLocale) => {
        luxonDateTime: DateTimeMaybeValid;
        fromString: (dateTime: string | null, formatDate?: string, locale?: supportedLocale) => /*elided*/ any;
        fromStringTime: (time: string | null, formatTime?: string, locale?: supportedLocale) => /*elided*/ any;
        fromISO: (dateTime: string, locale?: supportedLocale) => /*elided*/ any;
        fromObject: /*elided*/ any;
        setDateTime: (inputDate: DateTime, locale?: supportedLocale) => /*elided*/ any;
        toFormat: (format: string, locale?: supportedLocale) => string;
        toISO: () => string | null;
        toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
        toTinyDate: (locale?: supportedLocale) => string;
        toMonthShortDate: (locale?: supportedLocale) => string;
        toShortDate: (locale?: supportedLocale) => string;
        toLongDate: (locale?: supportedLocale) => string;
        toTinyDateTime: (locale?: supportedLocale) => string;
        toShortDateTime: (locale?: supportedLocale) => string;
        toLongDateTime: (locale?: supportedLocale) => string;
        isAfter: (compareDate: string) => boolean;
        isBefore: (compareDate: string) => boolean;
        isEqual: (compareDate: string) => boolean;
        isFuture: () => boolean;
        isFutureDate: () => boolean;
        isHappen: () => boolean;
        isHappenDate: () => boolean;
        now: () => /*elided*/ any;
    };
    setDateTime: (inputDate: DateTime, locale?: supportedLocale) => {
        luxonDateTime: DateTimeMaybeValid;
        fromString: (dateTime: string | null, formatDate?: string, locale?: supportedLocale) => /*elided*/ any;
        fromStringTime: (time: string | null, formatTime?: string, locale?: supportedLocale) => /*elided*/ any;
        fromISO: (dateTime: string, locale?: supportedLocale) => /*elided*/ any;
        fromObject: (dateTime: DateObjectUnits, locale?: supportedLocale) => /*elided*/ any;
        setDateTime: /*elided*/ any;
        toFormat: (format: string, locale?: supportedLocale) => string;
        toISO: () => string | null;
        toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
        toTinyDate: (locale?: supportedLocale) => string;
        toMonthShortDate: (locale?: supportedLocale) => string;
        toShortDate: (locale?: supportedLocale) => string;
        toLongDate: (locale?: supportedLocale) => string;
        toTinyDateTime: (locale?: supportedLocale) => string;
        toShortDateTime: (locale?: supportedLocale) => string;
        toLongDateTime: (locale?: supportedLocale) => string;
        isAfter: (compareDate: string) => boolean;
        isBefore: (compareDate: string) => boolean;
        isEqual: (compareDate: string) => boolean;
        isFuture: () => boolean;
        isFutureDate: () => boolean;
        isHappen: () => boolean;
        isHappenDate: () => boolean;
        now: () => /*elided*/ any;
    };
    toFormat: (format: string, locale?: supportedLocale) => string;
    toISO: () => string | null;
    toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
    toTinyDate: (locale?: supportedLocale) => string;
    toMonthShortDate: (locale?: supportedLocale) => string;
    toShortDate: (locale?: supportedLocale) => string;
    toLongDate: (locale?: supportedLocale) => string;
    toTinyDateTime: (locale?: supportedLocale) => string;
    toShortDateTime: (locale?: supportedLocale) => string;
    toLongDateTime: (locale?: supportedLocale) => string;
    isAfter: (compareDate: string) => boolean;
    isBefore: (compareDate: string) => boolean;
    isEqual: (compareDate: string) => boolean;
    isFuture: () => boolean;
    isFutureDate: () => boolean;
    isHappen: () => boolean;
    isHappenDate: () => boolean;
    now: () => {
        luxonDateTime: DateTimeMaybeValid;
        fromString: (dateTime: string | null, formatDate?: string, locale?: supportedLocale) => /*elided*/ any;
        fromStringTime: (time: string | null, formatTime?: string, locale?: supportedLocale) => /*elided*/ any;
        fromISO: (dateTime: string, locale?: supportedLocale) => /*elided*/ any;
        fromObject: (dateTime: DateObjectUnits, locale?: supportedLocale) => /*elided*/ any;
        setDateTime: (inputDate: DateTime, locale?: supportedLocale) => /*elided*/ any;
        toFormat: (format: string, locale?: supportedLocale) => string;
        toISO: () => string | null;
        toLocaleFormat: (locale: supportedLocale, format: DateTimeFormatOptions) => string;
        toTinyDate: (locale?: supportedLocale) => string;
        toMonthShortDate: (locale?: supportedLocale) => string;
        toShortDate: (locale?: supportedLocale) => string;
        toLongDate: (locale?: supportedLocale) => string;
        toTinyDateTime: (locale?: supportedLocale) => string;
        toShortDateTime: (locale?: supportedLocale) => string;
        toLongDateTime: (locale?: supportedLocale) => string;
        isAfter: (compareDate: string) => boolean;
        isBefore: (compareDate: string) => boolean;
        isEqual: (compareDate: string) => boolean;
        isFuture: () => boolean;
        isFutureDate: () => boolean;
        isHappen: () => boolean;
        isHappenDate: () => boolean;
        now: /*elided*/ any;
    };
};
export declare function verifyDateFormat(date: string): string | null;
export declare function returnVerifyDate(date: string): string | null;
