import type { CSSProperties, ReactNode } from 'react';
import type { Dayjs } from 'dayjs';
import type { PisellTimeNavigatorProps } from '../pisellTimeNavigator/types';
import type { PisellReservationScheduleProps } from '../pisellReservationSchedule/types';
/**
 * 组合值：顶栏选中日（营业日锚定）+ 时间轴游标绝对时刻 `at`。
 * 跨日营业时 `at` 可为其它自然日时刻，顶栏 `date` 通常不变；展示用 {@link formatScheduleAtLabel}（带日期）。
 */
export interface ReservationScheduleBandValue {
    date: Dayjs;
    at: Dayjs;
}
export declare type TimeNavigatorPassthroughProps = Omit<PisellTimeNavigatorProps, 'value' | 'onChange' | 'defaultValue'>;
/**
 * PisellReservationScheduleBand：营业日条 + 横向时间轴
 */
export interface PisellReservationScheduleBandProps {
    /**
     * 受控：选中日 + 轴上时刻
     */
    value?: ReservationScheduleBandValue;
    /**
     * 日历日或时刻任一变化时触发
     */
    onChange?: (next: ReservationScheduleBandValue) => void;
    /**
     * 非受控初始值（可只传部分字段）
     */
    defaultValue?: Partial<ReservationScheduleBandValue>;
    /**
     * 透传给 PisellReservationSchedule（如 minDate / maxDate）
     */
    scheduleProps?: Omit<PisellReservationScheduleProps, 'value' | 'onChange' | 'defaultValue'>;
    /**
     * 透传给 PisellTimeNavigator（不含 value/onChange/referenceDate）
     */
    timeNavigatorProps?: TimeNavigatorPassthroughProps;
    /**
     * 顶栏日程行：PisellReservationSchedule 左侧自定义内容（如标题）
     */
    scheduleStartSlot?: ReactNode;
    /**
     * 顶栏日程行：PisellReservationSchedule 右侧自定义内容（如状态、主按钮）
     */
    scheduleEndSlot?: ReactNode;
    /**
     * 顶栏日程行：紧挨在选日组件之后（如「跟随当前」），与中间列同一 flex 区
     */
    scheduleAfterDateSlot?: ReactNode;
    /**
     * 为 true 时隐藏下方时间导航轴（如日历视图仅需要选日/选周/选月）
     */
    hideTimeNavigator?: boolean;
    /**
     * 为 true 时在整个日程带上叠加载层（如切换营业日后拉预约列表期间）
     */
    dataLoading?: boolean;
    /**
     * 加载层内文案，由业务侧 {@link locales.getText} 等注入
     */
    dataLoadingTip?: ReactNode;
    className?: string;
    style?: CSSProperties;
    /**
     * 追加到内部 `.pisell-reservation-schedule-band-schedule-row` 的类名（如手机端无视图切换时改为一行布局）。
     */
    scheduleRowClassName?: string;
}
