/** 可转换为日期的输入;数字始终按 Unix 毫秒时间戳处理。 */ export type DateInput = Date | number | string; /** * 转换并克隆有效日期。 * * @remarks 数字不进行秒/毫秒猜测;字符串遵循运行时 `Date` 解析规则,跨平台代码应传带显式时区的完整 ISO 8601。 * @param value - Date、Unix 毫秒时间戳或运行时可解析字符串 * @returns 与输入不共享可变状态的新 Date * @throws 输入无效时抛出 `TypeError`。 */ export declare function toDate(value: DateInput): Date; /** * 返回输入日期所在本地时区日期的 `00:00:00.000`,不修改输入。 * * @param value - 有效日期输入 * @returns 新建的本地日开始时间 * @throws 输入无效时抛出 `TypeError`。 */ export declare function startOfDay(value: DateInput): Date; /** 日期选择器单日期快捷项 */ export interface DateShortcut { /** 面向中文日期选择器的显示文本;调用方可直接用于菜单标签。 */ text: string; /** * 计算快捷项对应日期。 * @returns 每次调用时基于当前本地时间创建的新 `Date`,调用方可安全修改。 */ value: () => Date; } /** 日期选择器范围快捷项 */ export interface DateRangeShortcut { /** 面向中文日期范围选择器的显示文本;调用方可直接用于菜单标签。 */ text: string; /** * 计算快捷项对应的本地日期范围。 * @returns 每次调用时创建的新元组;起点为 `00:00:00.000`,终点为 `23:59:59.999`。 */ value: () => [start: Date, end: Date]; } /** * 把日期转换为固定中文相对时间文本。 * * @remarks 10 位以内数字按 Unix 秒处理,其余数字按毫秒处理;月份与年份按本地日历月差计算。 * @param value - Date、时间戳、可解析字符串或空值 * @returns 例如“3分钟前”“半年后”;非法或空输入返回空字符串。 */ export declare function formatChineseRelativeTime(value: Date | number | string | null | undefined): string; /** * 创建从今天到前后一个月日期的完整本地日范围。 * * @param towardFuture - `true` 返回今天至一个月后,默认返回一个月前至今天。 * @returns 每次调用新建的本地日首尾边界。 */ export declare function createOneMonthRangeFromToday(towardFuture?: boolean): [start: Date, end: Date]; /** * 创建面向过去或未来的常用完整日期范围快捷项。 * * @param towardFuture - `true` 创建未来范围,默认创建历史范围。 * @returns 每次求值都会重新读取当前时间的范围快捷项。 */ export declare function createDateRangeShortcuts(towardFuture?: boolean): DateRangeShortcut[]; /** * 创建面向过去或未来的常用单日期快捷项。 * * @param towardFuture - `true` 创建未来日期,默认创建历史日期。 * @returns 每次求值都会重新读取当前时间的单日期快捷项。 */ export declare function createDateShortcuts(towardFuture?: boolean): DateShortcut[]; /** * 返回今天的本地零点。 * * @returns 新建的 `00:00:00.000` Date */ export declare function getStartOfToday(): Date;