/**
 * 日历主轴映射纯函数：把一条 booking 在主轴方向的连续区间 [startUnit, endUnit)
 * 按「精确比例 proportional」或「补全到刻度结束 snap」映射成 { offset, size }。
 * 单位无关：scalePerUnit 既可是 px（固定列宽视图）也可是 %（弹性列视图）。
 */
export declare type TickFillMode = 'proportional' | 'snap';
export declare type CalendarViewKind = 'day' | 'week' | 'resource' | 'month';
export interface TickAxis {
    /** 主轴起点对应的"绝对单位坐标"（日视图=firstTimelineHour；天维度=0） */
    originUnit: number;
    /** 每 1 单位的输出量（日视图=每小时 px；天维度=每列 px 或 %） */
    scalePerUnit: number;
    /** snap 的对齐粒度（单位）（日视图=slotStepHours；天维度=1） */
    tickUnit: number;
    /** 输出尺寸下限（与 scalePerUnit 同量纲），比例模式兜底可点击宽度 */
    minSize: number;
}
export interface AxisSpan {
    offset: number;
    size: number;
}
export declare function mapAxisSpan(axis: TickAxis, startUnit: number, endUnit: number, mode: TickFillMode): AxisSpan;
/**
 * 天维度：把（列下标, 当天浮点小时）折算成连续「天单位」坐标。
 * frac 限制在 [0,1]，使跨日首尾按当天营业小时占比收口。
 *
 * 营业窗口起点 `dayGridMin` 可能不是 0 点、甚至接近午夜（跨午夜营业，如 23:59 起）。
 * 此时 `hour - dayGridMin` 对白天小时会变负而被 clamp 成 0，导致所有预约挤到格子开头。
 * 因此先对 24h 做环绕，得到「距营业起点的正向偏移」，再按 span 归一化。
 */
export declare function dayGridUnit(colIndex: number, hour: number, dayGridMin: number, dayGridSpan: number): number;
export declare function resolveTickFillMode(view: CalendarViewKind, override: TickFillMode | undefined): TickFillMode;
