export declare type TDate = Date | string | number; export declare type LocaleFunc = (diff: number, idx: number, totalSec?: number) => [string, string]; export declare type LocaleMap = Record; /** * render / format options */ export declare type Opts = { /** the relative date */ readonly relativeDate?: TDate; /** the realtime */ readonly minInterval?: number; }; export declare function toDate(input?: Date | string | number): Date; /** * format the diff second to *** time ago, with setting locale * @param diff * @param localeFunc * @returns */ export declare function formatDiff(diff: number, localeFunc: LocaleFunc): string; /** * calculate the diff second between date to be formatted an now date. * @param date * @param relativeDate */ export declare function diffSec(date: TDate, relativeDate: TDate): number; /** * nextInterval: calculate the next interval time. * - diff: the diff sec between now and date to be formatted. * * What's the meaning? * diff = 61 then return 59 * diff = 3601 (an hour + 1 second), then return 3599 * make the interval with high performance. **/ export declare function nextInterval(diff: number): number; export declare const format: (date: string | number | Date, locale?: string, opts?: Opts) => string; /** * register a locale * @param locale * @param func */ export declare const register: (locale: string, func: LocaleFunc) => void; /** * get a locale, default is en_US * @param locale */ export declare const getLocale: (locale: string) => LocaleFunc;