/**
 * 预约页拆出的轻量子组件（无业务数据请求）：
 * - `RecordBoardBodyViewCapture`：同步 bodyView 到 ref，并可通知宿主；
 * - `ScheduleSyncOnFloorEnter`：从表格回到平面图/日历、或从日历回到平面图时，用当前营业日 patch 列表时间窗口；
 * - `PisellReservationToolbarTabs`：平面图/日历为日程带 + Segmented；表格 / 资源墙不展示日程带，仅 extraTabs；
 * - `ReservationGridTopRight` / `PisellReservationScheduleEndActions` / `ReservationFloorMapCanvasTabsTrailing`：工具栏与画布尾区。
 */
import React from 'react';
import { type Dayjs } from 'dayjs';
import type { PisellFloorMapLayoutRef, RecordBoardBodyView, ReservationScheduleBandValue, TimeRangeOption } from '@pisell/materials';
import type { PisellReservationProps } from '../types';
/** 无 UI：将 RecordBoard Context 中的 `bodyView` 写入 ref，并可选通知宿主（如预约页按视图切换 booking 的 form_record_ids） */
export declare function RecordBoardBodyViewCapture(props: {
    bodyViewRef: React.MutableRefObject<RecordBoardBodyView>;
    onBodyViewChange?: (v: RecordBoardBodyView) => void;
}): null;
/**
 * 视图切换时统一收敛 `floorDayBookingData.searchParams`：
 * - 从 grid / 任意非视图区切到 floorMap / calendar / resourceWall 时，锚定当前营业日单日窗；
 * - 从 calendar / resourceWall 切回 floorMap 时，除锚定单日窗外，必须清掉 calendar 周/月视图写入的
 *   `compact_fields` / `enable_remote_memory_cache`（否则 osServer 在非今日锚定下会走 compact with，
 *    booking 缺失 resources，平面图合并落空）；
 * - 从 calendar 切到 grid / resourceWall 时，单独清 calendar-only flags，避免之后再切回 floorMap 时残留。
 *
 * 注意：此组件必须常驻挂载（放在 `<PisellRecordBoard>` 内、`<ShellFrame>` 外），
 * 否则 ShellFrame 会按 bodyView 条件渲染 children，导致它只在 grid 视图下挂载而无法观测到切换事件。
 */
export declare function ScheduleSyncOnFloorEnter(props: {
    schedule: ReservationScheduleBandValue;
    isInternalListData: boolean;
    patchSearchParams: (updater: (prev: Record<string, unknown>) => Record<string, unknown>) => void;
    /** 店铺 core `operating_day_boundary`，与列表 `booking_time_start_between` / 顶栏一致 */
    operatingDayBoundary?: unknown;
    /** 与时间轴 `range` 一致，用于「今天」视图下 pickReferenceDateContainingNow */
    timelineRange: TimeRangeOption;
}): null;
export declare type PisellReservationToolbarTabsProps = {
    extraTabs?: React.ReactNode;
    schedule: ReservationScheduleBandValue;
    onScheduleChange: (next: ReservationScheduleBandValue) => void;
    scheduleProps?: PisellReservationProps['scheduleProps'];
    timeNavigatorProps?: PisellReservationProps['timeNavigatorProps'];
    scheduleStartSlot?: React.ReactNode;
    scheduleEndSlot?: React.ReactNode;
    followWallClock: boolean;
    onFollowWallClockToggle: () => void;
    onTimeNavigatorUserInteraction: () => void;
    loadDensity?: (params: {
        referenceDate: Dayjs;
        stepMinutes: number;
    }) => Promise<number[]>;
    /** 日历视图下顶栏日程切换步长（资源 / 日 / 周 / 月） */
    calendarGranularity?: 'resource' | 'day' | 'week' | 'month';
    /** `variant==='phone'` 时深色顶栏视图切换用 Select，其它控件尺寸收紧 */
    phoneLayout?: boolean;
};
export declare function ReservationMobileToolbarBodyViewSelect(): JSX.Element | null;
/**
 * 顶栏 tabs：**仅平面图、日历**下为日程带 + 时间轴 + 标题旁切换；表格 / 资源墙不展示 ScheduleBand，
 * 切换器由 RecordBoard 工具栏顶行承担（表格态在 Find 左侧；资源墙无 Find 时在顶行左侧），与历史行为一致。
 */
export declare function PisellReservationToolbarTabs(props: PisellReservationToolbarTabsProps): JSX.Element | null;
/** 表格视图时展示工具栏右上角透传；平面图时收起（编辑入口在画布 Tab 行右侧） */
export declare function ReservationGridTopRight(props: {
    extra?: React.ReactNode;
}): JSX.Element | null;
export declare type PisellReservationScheduleEndActionsProps = {
    onNewReservation?: () => void;
    calendarGranularity?: 'resource' | 'day' | 'week' | 'month';
    onCalendarGranularityChange?: (u: 'resource' | 'day' | 'week' | 'month') => void;
    phoneLayout?: boolean;
};
/** 顶栏日程带右侧：日历粒度（与左上角 Segmented 同款）+ 新建 */
export declare function PisellReservationScheduleEndActions(props: PisellReservationScheduleEndActionsProps): JSX.Element;
export declare type ReservationFloorMapCanvasTabsTrailingProps = {
    isFloorModeControlled: boolean;
    mapEditInternal: boolean;
    setMapEditInternal: React.Dispatch<React.SetStateAction<boolean>>;
    floorMapLayoutRef: React.RefObject<PisellFloorMapLayoutRef | null>;
    /** `variant==='phone'`：Dock 尾区编辑入口改为与缩放区一致的图标按钮 */
    phoneLayout?: boolean;
};
export declare type ReservationFloorMapDockToolButtonsProps = {
    appearanceMode: 'light' | 'dark';
    onToggleAppearanceMode: () => void;
};
/** 平面图左下 Dock 展开区：与缩放/网格平级的业务工具按钮。 */
export declare function ReservationFloorMapDockToolButtons(props: ReservationFloorMapDockToolButtonsProps): JSX.Element;
/** 平面图左下 Dock 展开区：编辑 / 完成编辑（经 PisellFloorMapLayout.viewportDockTrailing） */
export declare function ReservationFloorMapCanvasTabsTrailing(props: ReservationFloorMapCanvasTabsTrailingProps): JSX.Element | null;
/** 默认顶栏标题 slot */
export declare function ReservationDefaultScheduleStart(): JSX.Element;
/** 场控页顶栏标题 slot */
export declare function ReservationVenueScheduleStart(): JSX.Element;
