/**
 * SalesSdkDemo 一键测试用例的默认 fixture。
 *
 * 三个 Tab（详情 / 新建 / 编辑）的默认参数集中在此，便于：
 *  - demo 自身一键复现固定测试用例（不依赖任何 mock）
 *  - 高级配置面板把 override 与 base merge 后再交给 step runner
 *  - 顶层 SalesSdkDemoProps（osKey/orderId 等）覆盖 fixture（消费方可强制传业务参数）
 */
import type { ILoadProductsParams } from '../types';
/** 新建 / 编辑 Tab 共用的「业务参数」骨架 */
export interface DemoFixtureMutable {
    /** 透传给 bookingTicket.loadProducts 的查询条件 */
    loadProductsParams: ILoadProductsParams;
    /** 选客户用：缺省则取 customer.list[0]；填了 id 则走 customer.loadById(id) */
    customerId?: number | string;
    /** 加车用：从 products.load 结果里挑一个商品 + variant + 数量 */
    productPicker: {
        /** 缺省 = products.products[0].id */
        productId?: number;
        /** 缺省 = 0 */
        variantIndex?: number;
        /** 缺省 = 1 */
        num?: number;
    };
}
export interface DemoFixtureDetail {
    orderId: number;
}
export interface DemoFixtureCreate extends DemoFixtureMutable {
}
export interface DemoFixtureEdit extends DemoFixtureMutable {
    orderId: number;
}
export declare const FIXTURE_DETAIL: DemoFixtureDetail;
export declare const FIXTURE_CREATE: DemoFixtureCreate;
export declare const FIXTURE_EDIT: DemoFixtureEdit;
/**
 * 浅合并 fixture base 与用户 override。
 * 对 `loadProductsParams` / `productPicker` 这两个对象字段做一层 spread，避免被 override 整体替换掉。
 */
export declare function mergeMutableFixture<T extends DemoFixtureMutable>(base: T, override: Partial<T> | undefined): T;
export declare function mergeDetailFixture(base: DemoFixtureDetail, override: Partial<DemoFixtureDetail> | undefined): DemoFixtureDetail;
