import dayjs from 'dayjs';
import type { BookingTicketHandle, ILoadProductsParams, ScanOrderTempOrder } from '../types';
/** 与 SalesSdkProvider bootstrap 对齐的 board config 默认查询参数。 */
export declare const DEFAULT_BOOKING_CONFIG_PARAMS: {
    item_type: string;
};
export declare type InitBookingContextParams = NonNullable<Parameters<NonNullable<BookingTicketHandle['initBookingContext']>>[0]>;
/** 从 tempOrder.bookings 提取编辑态容量排除用的 booking id。 */
export declare function collectBookingIdsFromTempOrder(tempOrder: ScanOrderTempOrder | null): number[];
/** 构造与 Provider bootstrap 一致的 initBookingContext 入参。 */
export declare function buildInitBookingContextParams(bookingConfigParams?: Record<string, any>, options?: {
    date?: dayjs.Dayjs;
    bookingIds?: number[];
    loadResources?: boolean;
}): InitBookingContextParams;
/** 将 board `menu_list_tab.menu_list` 规范为 number[]。 */
export declare function normalizeMenuListIds(raw: unknown): number[];
/**
 * 从 BookingContext / boardConfig 推导 loadProducts 默认参数。
 * 与 ticketBooking `_getProducts` 对齐：日期取自 BookingContext，餐牌取自 board config。
 */
export declare function buildDefaultLoadProductsParams(bookingTicket: BookingTicketHandle | null | undefined): ILoadProductsParams;
/**
 * 从 BookingContext / OpenData / boardConfig 推导 loadProducts 默认参数。
 * 餐牌优先取 OS OpenData `menu.associated_menus`，为空时回退 boardConfig。
 *
 * @example
 * const params = await buildDefaultLoadProductsParamsWithOpenData(bookingTicket);
 */
export declare function buildDefaultLoadProductsParamsWithOpenData(bookingTicket: BookingTicketHandle | null | undefined): Promise<ILoadProductsParams>;
/** 外部 override 覆盖默认值；undefined 字段不冲掉 default。 */
export declare function mergeLoadProductsParams(defaults: ILoadProductsParams, override?: ILoadProductsParams): ILoadProductsParams;
/**
 * loadProducts 前确保 boardConfig 已就绪；缺省时补拉 config（不强制拉 resources）。
 * 须传入与 Provider bootstrap 等价的 init 入参，避免裸调 OS 时使用错误 bookingConfigParams。
 */
export declare function ensureBookingConfigForLoad(bookingTicket: BookingTicketHandle, initParams: InitBookingContextParams): Promise<void>;
