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 {};
