import type { ButtonProps, MenuProps } from 'antd';
import type { ReactNode } from 'react';
import type { SaleDetailContext } from '../../types';
export type { SaleDetailContext };
export declare type SaleDetailActionKey = 'edit' | 'refund' | 'return' | 'print' | 'print-receipts' | 'print-wristband' | 'cancel' | 'note' | 'save' | 'checkout' | 'checkout-cart' | 'more';
export interface SaleDetailActionConfig {
    isMore?: boolean;
    menuData?: MenuProps['items'];
    items?: SaleDetailActionInput[];
    row?: number;
    order?: number;
    hidden?: boolean;
    buttonProps?: ButtonProps;
}
export declare type SaleDetailActionInput = SaleDetailActionKey | ({
    name: SaleDetailActionKey;
} & SaleDetailActionConfig);
export interface SaleDetailActionButtonItem {
    id: string;
    isMore?: boolean;
    menuData?: MenuProps['items'];
    renderAfter?: ReactNode;
    buttonProps?: ButtonProps;
    row?: number;
    order?: number;
    hidden?: boolean;
}
export declare type SaleDetailActionButtonGroupList = SaleDetailActionButtonItem[][];
export interface UseSaleDetailActionsOptions {
    context: SaleDetailContext;
    actions?: SaleDetailActionInput[];
}
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 NativePageInstance {
    open?: (options: {
        page: string;
        params?: Record<string, unknown>;
    }) => void;
}
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;
