import { type Dayjs } from 'dayjs';
import type { TimeNavigatorValue, TimeRangeOption } from '../types';
/**
 * 解析 value 为 Dayjs，无效则返回 null。
 * 支持 dayjs 可解析的日期时间；纯时间字符串（如 '12:00'、'14:30'）会基于 reference 的日期解析。
 */
export declare function parseValue(value: TimeNavigatorValue, reference?: Dayjs): Dayjs | null;
/** 日历时间轴默认步长（分钟），与历史「整点列」一致 */
export declare const DEFAULT_CALENDAR_SLOT_STEP_MINUTES = 60;
/**
 * 按营业日 {@link TimeRangeOption} 在锚定自然日零点展开，生成日视图时间轴「列左边界」：
 * 值为相对 `reference.startOf('day')` 的**浮点小时**（可 ≥24，表示次日时刻），步长为 `slotStepMinutes`。
 */
export declare function buildCalendarTimelineSlotStartsFromRange(range: TimeRangeOption | undefined, anchorDate: Date | Dayjs, slotStepMinutes?: number): number[];
/**
 * @deprecated 语义上等价于 {@link buildCalendarTimelineSlotStartsFromRange}(..., 60)；保留兼容导出。
 */
export declare function buildCalendarHourSlotsFromRange(range: TimeRangeOption | undefined, anchorDate: Date | Dayjs): number[];
/**
 * 将 range 转为 [startDayjs, endDayjs]（reference 为营业锚定日的 0 点）
 * - 同日内：如 08:00–22:00
 * - 跨日营业：结束钟面早于或等于开始（如 02:01–次日 02:00）时，end 解析为 reference 的次日同一时刻
 */
export declare function getRangeBounds(range: TimeRangeOption | undefined, reference: Dayjs): [Dayjs, Dayjs];
/**
 * 将时间吸附到 step 分钟刻度（0、15、30、45 等）：四舍五入到最近刻度。
 */
export declare function snapToStepMinutes(t: Dayjs, stepMinutes: number): Dayjs;
/**
 * 判断时间是否落在任一禁用区间内（按绝对时间与区间 [start,end) 比较）
 * 注：与主时间轴同 reference 的跨日 range 一致时需传入同一营业锚定日解析出的区间。
 */
export declare function isInDisabledRanges(t: Dayjs, disabledRanges: TimeRangeOption[] | undefined): boolean;
/**
 * 在 [rangeStart, rangeEnd] 内按 stepMinutes 生成刻度时间列表（Dayjs）
 */
export declare function getTicks(rangeStart: Dayjs, rangeEnd: Dayjs, stepMinutes: number): Dayjs[];
/**
 * 横向时间轴「格」数量，与 useTimeAxis 中 totalLengthPx 算法一致（含尾格）
 */
export declare function getHorizontalAxisSlotCount(range: TimeRangeOption | undefined, referenceDate: Dayjs, stepMinutes: number): number;
