import type { ReactNode } from 'react';
export interface DetailActionButtonProps {
    block?: boolean;
    children?: ReactNode;
    className?: string;
    danger?: boolean;
    disabled?: boolean;
    icon?: ReactNode;
    loading?: boolean;
    onClick?: () => void | Promise<void>;
    size?: 'small' | 'middle' | 'large';
    type?: 'primary' | 'default' | 'dashed' | 'link' | 'text';
}
export declare type SaleDetailActionKey = 'edit' | 'refund' | 'return' | 'print' | 'print-receipts' | 'print-wristband' | 'print-wallet' | 'cancel' | 'note' | 'select-floor-resource' | 'save' | 'checkout' | 'checkout-cart' | 'more';
export declare type DetailActionSlot = 'footer-primary' | 'footer-secondary' | 'footer-muted' | 'menu-item';
export interface DetailActionConfig {
    key: SaleDetailActionKey;
    row?: number;
    order?: number;
    slot?: DetailActionSlot;
    hidden?: boolean;
    buttonProps?: DetailActionButtonProps;
    children?: DetailActionConfig[];
}
export interface DetailActionModel {
    key: string;
    label?: ReactNode;
    icon?: ReactNode;
    disabled?: boolean;
    loading?: boolean;
    hidden?: boolean;
    danger?: boolean;
    onTrigger?: () => void | Promise<void>;
    overlay?: ReactNode;
    meta?: Record<string, unknown>;
}
export interface NativePageInstance {
    open?: (options: {
        page: string;
        params?: Record<string, unknown>;
    }) => void;
}
export interface SaleDetailMachineCodePrintAction {
    product_ids?: Array<number | string>;
    tag?: string;
    name?: string;
    wallet_pass_product_list?: Array<Record<string, any>>;
    [key: string]: any;
}
export declare enum EBizPrintType {
    /** 备货/划单打印 */
    PREPARE_SORT = "PREPARE_SORT",
    /** 小票打印 */
    INVOICE = "INVOICE",
    /** 商品券打印 */
    WALLET = "WALLET",
    /** 手环打印 */
    WRISTBAND = "WRISTBAND",
    /** 钱箱报告打印 */
    TILL_REPORT = "TILL_REPORT"
}
export interface SaleDetailPrintResult {
    status?: string;
    result?: boolean;
    msg?: string;
    message?: string;
}
export declare type HostAction = (payload: {
    type: string;
    data?: unknown;
    callback?: (result?: SaleDetailPrintResult) => void;
}) => void;
