import React from 'react';
import type { BaseResponsiveProps } from '../../../../responsive/type';
import type { BaseSalesScanCodeResult, SalesSdkCartContextValue, SalesSdkContextValue } from '../../../salesSdk';
import './index.less';
export declare type SaleDetailVoucherRenderType = 'current' | 'modal';
export interface SaleDetailDiscount {
    id: number | string;
    isSelected?: boolean;
    isDisabled?: boolean;
    isDisabledForProductUsed?: boolean;
    isAvailable?: boolean;
    savedAmount?: number;
    [key: string]: any;
}
export interface VoucherBaseProps extends BaseResponsiveProps {
    discountList?: SaleDetailDiscount[];
    getDiscountList?: () => SaleDetailDiscount[];
    scanPromotionCode?: (code: string, customerId?: number) => Promise<BaseSalesScanCodeResult>;
    setDiscountSelected?: (params: {
        discountId: number;
        isSelected: boolean;
    }) => Promise<void>;
    customerId?: number;
    isInModal?: boolean;
    defaultExpanded?: boolean;
    showTitle?: boolean;
    disabled?: boolean;
    className?: string;
}
export interface VoucherContext {
    sales: Pick<SalesSdkContextValue, 'tempOrder' | 'status'>;
    cart: Pick<SalesSdkCartContextValue, 'discountList' | 'setDiscount' | 'scanCode'>;
}
export interface VoucherProps extends BaseResponsiveProps {
    context: VoucherContext;
    renderType?: SaleDetailVoucherRenderType;
    visible?: boolean;
    onClose?: () => void;
    className?: string;
}
export declare const VoucherBase: React.MemoExoticComponent<typeof VoucherBaseComponent>;
declare function VoucherBaseComponent({ discountList, getDiscountList, scanPromotionCode, setDiscountSelected, customerId, isInModal, defaultExpanded, showTitle, disabled, className, variant, }: VoucherBaseProps): React.JSX.Element;
export declare const Voucher: React.ForwardRefExoticComponent<VoucherProps & React.RefAttributes<unknown>>;
export default Voucher;
