import type React from 'react';
import type { BaseResponsiveProps } from '../../responsive/type';
import type { ILoadProductsParams, SalesSdkBookingContextValue, SalesSdkCartContextValue, SalesSdkContextValue, SalesSdkCustomerContextValue, SalesSdkProductsContextValue, SalesSdkProviderProps, SalesSdkSummaryContextValue } from '../../plus/salesSdk';
import type { SaleDetailModuleConfig, SaleDetailOrderCompletePayload, SaleDetailTemplate } from '../../plus/saleDetail/types';
import type { TicketBookingSecondaryDisplayConfig } from '../ticketBooking/components/ticketBooking/useTicketBookingSecondaryScreen';
import type { ProductDisplayConfig, ProductDisplayPresetKey } from '../ticketBooking/components/ProductDisplayAdapter';
export declare type BigSaleMode = 'ticket' | 'retail';
export declare type BigSaleTemplate = 'standard' | 'secondaryScreen';
export interface BigSaleContext {
    sales: SalesSdkContextValue;
    products: SalesSdkProductsContextValue;
    customer: SalesSdkCustomerContextValue;
    cart: SalesSdkCartContextValue;
    summary: SalesSdkSummaryContextValue;
    booking: SalesSdkBookingContextValue;
}
export interface BigSaleBaseProps extends BaseResponsiveProps {
    /** 页面/Tab 是否激活；失活时商品列表会关闭 Tabbar 搜索态。 */
    isActive?: boolean;
    /** 右侧 SaleDetail 信息区顶部栏（如 BigSaleDialog 订单号 + 关闭）。 */
    saleDetailHeaderSlot?: React.ReactNode;
    /** 全屏 loading 遮罩（如 BigSaleDialog 新建 seed 未就绪时）。 */
    overlaySlot?: React.ReactNode;
    mode?: BigSaleMode;
    tmpl?: BigSaleTemplate;
    template?: BigSaleTemplate;
    productLoadParams?: ILoadProductsParams;
    /** 预约/餐饮业务码，用于 BigSale 内部选择桌台时复用平面图配置。 */
    businessCode?: string;
    /** BookingContext 初始化参数，用于选择桌台后刷新资源上下文。 */
    bookingConfigParams?: SalesSdkProviderProps['bookingConfigParams'];
    /** 隐藏 BigSale 内置的选择桌台/资源按钮（如 Dialog 宿主已有外层上下文）。 */
    hideSelectFloorMapResourceAction?: boolean;
    productDisplayConfig?: ProductDisplayPresetKey | ProductDisplayConfig;
    /** 弹窗 openNonce + 模式，用于强制刷新商品 catalog。 */
    productCatalogSessionKey?: string;
    saleDetailTemplate?: SaleDetailTemplate;
    saleDetailModuleConfig?: SaleDetailModuleConfig;
    autoCreate?: boolean;
    orderId?: SalesSdkProviderProps['orderId'];
    locale?: string;
    /** 副屏场景下包裹 saleDetail 区域的额外属性（缩放、连点手势等） */
    saleDetailWrapperProps?: React.HTMLAttributes<HTMLDivElement> & {
        id?: string;
    };
    /** 副屏购物车每行展示几个商品；未传或 <=1 时保持单列 */
    cartProductsPerRow?: number;
    /** 是否在 SaleDetail 中渲染客户信息（默认 true） */
    showClient?: boolean;
    /** 保存 / 结账成功后回调（BigSaleDialog 用于关闭弹窗）。 */
    onOrderComplete?: (payload: SaleDetailOrderCompletePayload) => void;
}
export interface BigSaleProps extends Omit<SalesSdkProviderProps, 'children' | 'osKey'>, Pick<BigSaleBaseProps, 'className' | 'style' | 'mode' | 'tmpl' | 'template' | 'productLoadParams' | 'businessCode' | 'bookingConfigParams' | 'hideSelectFloorMapResourceAction' | 'productDisplayConfig' | 'productCatalogSessionKey' | 'saleDetailTemplate' | 'saleDetailModuleConfig' | 'autoCreate'> {
    osKey?: SalesSdkProviderProps['osKey'];
    secondaryScreenDisplay?: TicketBookingSecondaryDisplayConfig;
    /** SalesSdk 挂载后的 bootstrap 逻辑（如 BigSaleDialog 的 create/load seed）。 */
    bootstrapSlot?: React.ReactNode;
    saleDetailHeaderSlot?: React.ReactNode;
    overlaySlot?: React.ReactNode;
    onOrderComplete?: (payload: SaleDetailOrderCompletePayload) => void;
}
export interface BigSaleTemplateRendererProps {
    /** 页面/Tab 是否激活；传给商品列表以在失活时关闭搜索。 */
    isActive?: boolean;
    context: BigSaleContext;
    mode: BigSaleMode;
    tmpl?: BigSaleTemplate;
    variant: string;
    productLoadParams?: ILoadProductsParams;
    /** 当前 BigSale 业务码；选择桌台 action 用它拉取对应平面图/规则商品配置。 */
    businessCode?: string;
    /** 当前 BigSale 的 BookingContext 初始化参数。 */
    bookingConfigParams?: SalesSdkProviderProps['bookingConfigParams'];
    /** 是否隐藏模板内置的选择桌台/资源按钮。 */
    hideSelectFloorMapResourceAction?: boolean;
    productDisplayConfig?: ProductDisplayPresetKey | ProductDisplayConfig;
    productCatalogSessionKey?: string;
    saleDetailTemplate?: SaleDetailTemplate;
    saleDetailModuleConfig?: SaleDetailModuleConfig;
    orderId?: SalesSdkProviderProps['orderId'];
    locale?: string;
    /** 仅 secondaryScreen 模板会消费；标准模板忽略 */
    saleDetailWrapperProps?: React.HTMLAttributes<HTMLDivElement> & {
        id?: string;
    };
    /** 右侧 SaleDetail 信息区顶部栏 */
    saleDetailHeaderSlot?: React.ReactNode;
    onOrderComplete?: (payload: SaleDetailOrderCompletePayload) => void;
}
export declare type BigSaleTemplateProps = Omit<BigSaleTemplateRendererProps, 'tmpl'>;
