export interface DateAddingObject { year?: number; month?: number; day?: number; hour?: number; minute?: number; second?: number; millisecond?: number; years?: number; months?: number; days?: number; hours?: number; minutes?: number; seconds?: number; milliseconds?: number; Y?: number; y?: number; M?: number; d?: number; h?: number; m?: number; s?: number; ms?: number; } export interface InnerDateParsingObject { year?: number; month?: number; date?: number; hour?: number; minute?: number; second?: number; millisecond?: number; utcOffset?: number; } export interface DateParsingObject extends DateAddingObject { utcOffset?: number; } /** * Date input type * 日期输入类型 */ export type DateInput = string | number | Date | number[] | DateParsingObject; /** * Internal date unit * 内部日期单位 */ export type InnerUnit = 'year' | 'month' | 'date' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond'; export interface InnerUnits { /** * Time unit (时间单位) */ TIME: 'time'; /** * Year unit (年单位) */ YEAR: 'year'; /** * Month unit (月单位) */ MONTH: 'month'; /** * Date unit (日单位) */ DATE: 'date'; /** * Day unit (日单位) */ DAY: 'day'; /** * Hour unit (时单位) */ HOUR: 'hour'; /** * Minute unit (分单位) */ MINUTE: 'minute'; /** * Second unit (秒单位) */ SECOND: 'second'; /** * Millisecond unit (毫秒单位) */ MILLISECOND: 'millisecond'; /** * UTC offset unit (时区单位) */ UTC_OFFSET: 'utcOffset'; } /** * Date unit * 日期单位 */ export type Unit = 'Y' | 'y' | 'M' | 'D' | 'd' | 'h' | 'm' | 's' | 'ms' | InnerUnit | 'years' | 'months' | 'dates' | 'days' | 'hours' | 'minutes' | 'seconds' | 'milliseconds'; export type ChainInput = DateInput | IDateChain; export interface IDateChain { add(input: DateAddingObject): this; add(num: number, unit: Unit): this; addDays(days: number): this; addHours(hours: number): this; addMilliseconds(ms: number): this; addMinutes(minutes: number): this; addMonths(months: number): this; addYears(years: number): this; dayOfYear(): number; dayOfYear(val: number): this; daysInMonth(): number; diff(input: ChainInput, unit: Unit, asFloat?: boolean): number; diffInDays(input: ChainInput, asFloat?: boolean): number; diffInHours(input: ChainInput, asFloat?: boolean): number; diffInMilliseconds(input: ChainInput, asFloat?: boolean): number; diffInMinutes(input: ChainInput, asFloat?: boolean): number; diffInMonths(input: ChainInput, asFloat?: boolean): number; diffInSeconds(input: ChainInput, asFloat?: boolean): number; diffInYears(input: ChainInput, asFloat?: boolean): number; endOf(unit: Unit): this; format(formatString?: string): string; get(unit: Unit): number; isAfter(input: ChainInput, unit: Unit): boolean; isBefore(input: ChainInput, unit: Unit): boolean; isBetween(from: ChainInput, to: ChainInput, unit: Unit, inclusivity?: string): boolean; isLeapYear(): boolean; isSame(input: ChainInput, unit: Unit): boolean; isSameOrAfter(input: ChainInput, unit: Unit): boolean; isSameOrBefore(input: ChainInput, unit: Unit): boolean; isValid(): boolean; set(unit: Unit, val: number): this; startOf(unit: Unit): this; subDays(days: number): this; subHours(hours: number): this; subMilliseconds(time: number): this; subMinutes(minutes: number): this; subMonths(months: number): this; subSeconds(seconds: number): this; subtract(input: number | DateAddingObject): this; subtract(num: number, unit: Unit): this; subYears(years: number): this; year(year: number): this; year(): number; month(month: number): this; month(): number; date(date: number): this; date(): number; day(day: number): this; day(): number; hour(hour: number): this; hour(): number; minute(minute: number): this; minute(): number; second(second: number): this; second(): number; millisecond(millisecond: number): this; millisecond(): number; time(time: number): this; time(): number; hours(hours: number): this; hours(): number; minutes(minutes: number): this; minutes(): number; seconds(seconds: number): this; seconds(): number; milliseconds(milliseconds: number): this; milliseconds(): number; clone(): IDateChain; toArray(): number[]; toDate(): Date; toISOString(): string; toJSON(): string; toString(): string; valueOf(): number; }