import type { ReactNode } from 'react';
import type { BaseResponsiveProps } from '../../responsive/type';
import type { SalesSdkCartContextValue, SalesSdkBookingContextValue, SalesSdkContextValue, SalesSdkCustomerContextValue, SalesSdkProviderProps, SalesSdkSummaryContextValue } from '../salesSdk';
import type { DetailActionConfig } from './components/DetailActions/types';
export declare type SaleDetailRenderType = 'current' | 'modal' | 'drawer';
export declare type SaleDetailTemplate = 'A' | 'B';
export declare type SaleDetailMobilePresentation = 'inline' | 'bottomSheet';
export declare type SaleDetailTabKey = 'summary' | 'customer' | 'notes' | 'guests' | 'pay' | 'history' | 'ticket';
export declare type SaleDetailModuleKey = 'overview' | 'customer' | 'contact' | 'orderNote' | 'cartItems' | 'cartActions' | 'amountDetails' | 'orderActions' | 'promotionAlert';
export interface SaleDetailCartItemsLayoutConfig {
    columns?: number;
}
export interface SaleDetailModuleConfig {
    hidden?: SaleDetailModuleKey[];
    cartItems?: {
        layout?: SaleDetailCartItemsLayoutConfig;
        showBookingItems?: boolean;
        showProductItems?: boolean;
    };
    amountDetails?: {
        defaultExpanded?: boolean;
    };
    /**
     * 覆盖模板 A 底部订单操作按钮；不传时使用默认 TEMPLATE_A_ACTIONS。
     *
     * @example
     * { orderActions: [{ key: 'note' }, { key: 'save' }, { key: 'checkout-cart' }] }
     */
    orderActions?: DetailActionConfig[];
}
export interface SaleDetailTabItem {
    key: SaleDetailTabKey;
    title: ReactNode;
    content: ReactNode;
    iconType?: string;
    badgeCount?: number;
}
export interface SaleDetailContext {
    sales: SalesSdkContextValue;
    customer: SalesSdkCustomerContextValue;
    cart: SalesSdkCartContextValue;
    summary: SalesSdkSummaryContextValue;
    booking?: SalesSdkBookingContextValue;
    /**
     * 弹窗场景（如 BigSaleDialog）在保存 / 结账成功后回调，用于关闭外层容器。
     *
     * @example
     * onOrderComplete?.({ type: 'save', order_id: 123, reset: true });
     */
    onOrderComplete?: (payload: SaleDetailOrderCompletePayload) => void;
}
/** 对齐 TicketBookingDialog callback 的 save / checkout 语义。 */
export interface SaleDetailOrderCompletePayload {
    type: 'save' | 'checkout';
    data?: any;
    order_id?: number | string;
    reset?: boolean;
}
interface SaleDetailBaseProps extends BaseResponsiveProps {
    context?: SaleDetailContext;
    tmpl?: SaleDetailTemplate;
    template?: SaleDetailTemplate;
    moduleConfig?: SaleDetailModuleConfig;
    mobilePresentation?: SaleDetailMobilePresentation;
    /**
     * 仅模板 B 的 summary tab 生效：开启后将「金额明细 + 底部金额汇总/操作按钮」
     * 抽到右侧独立列，与左侧订单内容形成两栏（宽度不足时自动回落为单栏堆叠），
     * 同时底部操作按钮改为一行一个。默认 false，不影响其他用法。
     */
    summaryTwoColumn?: boolean;
}
export interface SaleDetailSdkProviderProps {
    osProps: Pick<SalesSdkProviderProps, 'osKey' | 'orderId' | 'autoBootstrap' | 'preloadedSalesDetail' | 'businessCode' | 'bookingConfigParams' | 'autoInitBookingContext' | 'otherParams' | 'rulesHooks' | 'restoreOrderAfterPaidCheckout' | 'destroyOnUnmount'>;
}
export declare type SaleDetailBaseComponentProps = SaleDetailBaseProps & ({
    renderType?: 'current';
    containerProps?: never;
} | {
    renderType: Exclude<SaleDetailRenderType, 'current'>;
    containerProps: Record<string, unknown>;
});
export declare type SaleDetailProps = SaleDetailBaseComponentProps & SaleDetailSdkProviderProps;
export interface SaleDetailBlockProps<TDisplayData> {
    dataSource: TDisplayData;
    className?: string;
}
export {};
