import { Dayjs } from 'dayjs'; import { DateModelValue, DisabledMonthFn, DisabledYearFn } from './types'; export interface RangeStateResult { isRangeStart: boolean; isRangeEnd: boolean; isInRange: boolean; } interface ComputeRangeStateParams { /** 当前格子的日期 */ cell: Dayjs; /** 比较粒度('day' | 'month' | 'year') */ unit: string; /** 已确认范围的起始日期(排序后) */ rangeStart: Dayjs | null; /** 已确认范围的结束日期(排序后) */ rangeEnd: Dayjs | null; /** 第一次点击的锚点日期(选择进行中时有值) */ anchorDate: Dayjs | null; /** 鼠标悬停的日期(用于范围选择的实时预览) */ hoverDate: Dayjs | null; } /** * 根据范围选择状态计算单个格子的范围高亮标记 * @param cell - 当前格子的日期 * @param unit - 比较粒度 * @param rangeStart - 已确认范围起始 * @param rangeEnd - 已确认范围结束 * @param anchorDate - 选择进行中的锚点 * @param hoverDate - 当前悬停日期 * @returns 范围高亮状态 */ export declare function computeRangeState({ cell, unit, rangeStart, rangeEnd, anchorDate, hoverDate }: ComputeRangeStateParams): RangeStateResult; /** year view 下面板导航每次跳跃的年数,同时也是双面板右侧偏移量 */ export declare const YEAR_VIEW_STEP = 10; /** * Parse a user-provided model value into a Dayjs object. * Accepts: Date object, formatted string, number timestamp, or ISO string. */ export declare function parseValue(value: DateModelValue): Dayjs | null; export declare function isMonthDisabled(year: number, month: number, // 0-indexed,0=一月,11=十二月 options: { disabledDate?: (d: Date) => boolean; disabledMonth?: DisabledMonthFn; minDate?: Dayjs | null; maxDate?: Dayjs | null; }): boolean; export declare function isYearDisabled(year: number, options: { disabledYear?: DisabledYearFn; minDate?: Dayjs | null; maxDate?: Dayjs | null; }): boolean; export {};