/**
 * 预约页与 RecordBoard 共用的纯函数：内置列表判定、筛参合并、按营业日改 booking 窗口、持久化 bodyView 读取。
 */
import { type Dayjs } from 'dayjs';
import type { RecordBoardBodyView, RecordBoardProps } from '@pisell/materials';
import type { TimeRangeOption } from '@pisell/materials';
/**
 * 是否使用内置预约/资源请求：
 * - 未传 `data` / `null`；
 * - 或低代码只绑了空数组作占位，且未同时受控 total / onPageChange。
 *   （仅有 pagination 占位而无 onPageChange 时仍走内置，否则会永不请求列表。）
 */
export declare function shouldUseBuiltinReservationList(dataProp: unknown[] | null | undefined, totalProp: number | undefined, paginationProp: RecordBoardProps['pagination'] | undefined, onPageChangeProp: RecordBoardProps['onPageChange'] | undefined): boolean;
/**
 * 表格筛选若未带支付态默认值，接口可能返回空；与 QuickFilter/高级筛选项合并时保留 monitor 默认。
 */
export declare function mergeGridBookingSearchParams(params: Record<string, unknown> | undefined): Record<string, unknown>;
/** 列表请求：平面图 / 资源墙 / 非日历视图下，按顶栏日程与时间轴营业窗更新 booking_time_start_between */
export declare function mergeSearchParamsBookingWindow(prev: Record<string, unknown>, anchorDay: Dayjs, operatingDayBoundary?: unknown, timelineRange?: TimeRangeOption, wallClock?: Dayjs): Record<string, unknown>;
/**
 * 清理仅在日历周/月视图下设置的请求 flag：
 * - `compact_fields`：为 true 时，osServer 远端 SSE 走精简 with，不返回 booking.resources；
 * - `enable_remote_memory_cache`：开启后 osServer 会写入 `bookingRemoteCache`，Ably 推送时按 compact with 同步。
 *
 * 切回平面图 / 资源墙 / 表格时必须先清掉，否则非今日锚定下平面图会拿到无 resources 的 booking，
 * 导致按桌合并全部落空、画布空白。
 */
export declare function stripCalendarOnlyFlags(prev: Record<string, unknown>): Record<string, unknown>;
/** 日历导航：按视口自然日范围扩展 `booking_time_start_between` */
export declare function mergeSearchParamsBookingRange(prev: Record<string, unknown>, rangeStart: Date, rangeEnd: Date, operatingDayBoundary?: unknown): Record<string, unknown>;
/**
 * 按任意 key 读取表格/平面图偏好（与 PisellRecordBoard 内 read 规则一致）。
 */
export declare function readBodyViewFromStorageKey(key: string | undefined): RecordBoardBodyView;
/**
 * 预约页默认持久化 key：有合法 localStorage 则用，否则平面图。
 */
export declare function readPersistedReservationBodyView(): RecordBoardBodyView;
export declare type ReservationFloorMapAppearanceMode = 'light' | 'dark';
/**
 * 读取平面图操作栏「暗色背景」偏好，按门店/平面图 code 隔离；无缓存默认 `light`。
 */
export declare function readReservationFloorMapAppearanceMode(floorPlanCode: string): ReservationFloorMapAppearanceMode;
/**
 * 写入平面图操作栏「暗色背景」偏好，按门店/平面图 code 隔离。
 */
export declare function writeReservationFloorMapAppearanceMode(floorPlanCode: string, mode: ReservationFloorMapAppearanceMode): void;
