import type { ButtonProps, MenuProps } from 'antd';
import type { SaleDetailBlockProps, SaleDetailDataSource } from '../types';
export declare type SaleDetailActionKey = 'edit' | 'refund' | 'return' | 'print' | 'print-product-voucher' | 'print-receipts' | 'print-wristband' | 'print-all' | 'cancel' | 'checkout' | 'more';
export interface SaleDetailActionConfig {
    id?: string;
    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'];
    buttonProps?: ButtonProps;
    row?: number;
    order?: number;
    hidden?: boolean;
}
export declare type SaleDetailActionButtonGroupList = SaleDetailActionButtonItem[][];
export interface UseSaleDetailActionsOptions extends SaleDetailBlockProps<SaleDetailDataSource> {
    actions?: SaleDetailActionInput[];
    machineCodePrintActions?: SaleDetailMachineCodePrintAction[];
    getRemotePrintActionsData?: () => void | Promise<void>;
}
export interface SaleDetailMachineCodePrintAction {
    product_ids?: Array<number | string>;
    tag?: string;
    name?: string;
    wallet_pass_product_list?: Array<Record<string, any>>;
    [key: string]: any;
}
interface UseEditBookingActionOptions extends SaleDetailBlockProps<SaleDetailDataSource> {
    getRemotePrintActionsData?: () => void | Promise<void>;
}
export declare function useEditActionItem({ dataSource, getRemotePrintActionsData, }: UseEditBookingActionOptions): SaleDetailActionButtonItem;
export declare function useReturnActionItem({ dataSource, getRemotePrintActionsData, }: UseEditBookingActionOptions): SaleDetailActionButtonItem;
export declare function useRefundActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function usePrintReceiptsActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function usePrintActionItem(): SaleDetailActionButtonItem;
export declare function usePrintProductVoucherActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function useMachineCodePrintActionItems({ dataSource, machineCodePrintActions, }: SaleDetailBlockProps<SaleDetailDataSource> & {
    machineCodePrintActions?: SaleDetailMachineCodePrintAction[];
}): SaleDetailActionButtonItem[];
export declare function usePrintWristbandActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function usePrintAllActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function useMoreActionItem({ printReceiptsAction, printWristbandAction, cancelAction, }: {
    printReceiptsAction: SaleDetailActionButtonItem;
    printWristbandAction: SaleDetailActionButtonItem;
    cancelAction: SaleDetailActionButtonItem;
}): SaleDetailActionButtonItem;
export declare function useCancelActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function useCheckoutActionItem({ dataSource, }: SaleDetailBlockProps<SaleDetailDataSource>): SaleDetailActionButtonItem;
export declare function useSaleDetailActions({ dataSource, actions, machineCodePrintActions, getRemotePrintActionsData, }: UseSaleDetailActionsOptions): SaleDetailActionButtonGroupList;
export {};
