/**
 * 把 info2 `cacheItem` 转换为 OS `addProductToOrder(product, booking)` 所需的 booking 入参。
 *
 * 协议严格对齐 `pisell_os/src/modules/Order/TEMP_ORDER_FIELDS_SUMMARY.md` 的 Bookings 章节：
 *   - 顶层只允许出现：schedule_event_id / appointment_status / start_date / start_time / end_date /
 *     end_time / select_date / duration / sub_type / like_status / number / resources / relation_forms /
 *     holder / metadata / is_all / schedule_id / relation_id / form_id / relation_type / product_uid
 *   - bookings[] 不允许出现 `_extend`
 *   - bookings[].metadata 走白名单：unique_identification_number / collect_pax / capacity / holder_id / resource_select_type
 *   - bookings[].resources[] 只接受协议白名单：form_id / relation_type / relation_id / capacity / like_status / metadata / children
 *
 * `product_uid` / `metadata.unique_identification_number` 不在这里生成：
 *   OS `addProductToOrder` 内的 `createLinkedProductAndBooking` 会在最终一步统一改写，
 *   保证商品行 uid 与 booking root 唯一值始终对齐。
 *
 * 复杂 multi-day 展开（createBookingItemsByGroup / concatBookings）首版**不支持**，
 * 由 UI 在 `cart.confirmDetail` 之外通过辅助 API 处理。
 */
export interface CacheItemToBookingInputOptions {
    /** booking config，用于推导 metadata.resource_select_type（默认从 cacheItem.\_data.resources[0].select_type.type 推断）。 */
    bookingConfig?: any;
}
export interface BookingInput {
    schedule_event_id?: number | string;
    start_date?: string;
    start_time?: string;
    end_date?: string;
    end_time?: string;
    select_date?: string;
    duration?: number;
    sub_type?: 'days' | 'minutes' | string;
    is_all?: 0 | 1;
    number?: number;
    holder?: any;
    like_status?: string;
    relation_forms?: any[];
    resources?: BookingResourceInput[];
    metadata?: BookingMetadataInput;
    schedule_id?: number | string;
    relation_id?: number | string;
    form_id?: number | string;
    relation_type?: string;
}
export interface BookingResourceInput {
    form_id?: number | string;
    relation_type?: string;
    relation_id?: number | string;
    capacity?: number;
    like_status?: string;
    metadata?: Record<string, any>;
    children?: any[];
}
/** custom / package 人数维度快照，与 info2 `_extend.capacity` / `metadata.capacity` 对齐。 */
export interface BookingCapacityMetadataItem {
    id: string | number;
    value: number;
    name?: Record<string, any> | string;
}
export interface BookingMetadataInput {
    /** 由 OS createLinkedProductAndBooking 统一改写，这里不生成。 */
    unique_identification_number?: string;
    collect_pax?: number;
    /**
     * 资源容量快照：custom 多维度时为 `{ id, value, name? }[]`；
     * 仅总和场景可为 number（capacity_snapshot 兼容）。
     */
    capacity?: number | BookingCapacityMetadataItem[];
    /** 协议要求始终提交（即使为 null）。 */
    holder_id: any;
    resource_select_type?: 'single' | 'multiple' | string;
}
/**
 * 主入口。
 */
export declare function cacheItemToBookingInput(cacheItem: any, options?: CacheItemToBookingInputOptions): BookingInput;
