import { Module, PisellCore, ModuleOptions } from '../../types';
import { BaseModule } from '../BaseModule';
import { Discount, DiscountModuleAPI } from './types';
export declare class DiscountModule extends BaseModule implements Module, DiscountModuleAPI {
    protected defaultName: string;
    protected defaultVersion: string;
    private request;
    private window;
    private store;
    private cacheId;
    private openCache;
    private fatherModule;
    constructor(name?: string, version?: string);
    initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
    setDiscountList(discountList: Discount[]): Promise<void>;
    getDiscountList(): Discount[];
    setOriginalDiscountList(originalDiscountList: Discount[]): Promise<void>;
    getOriginalDiscountList(): Discount[];
    loadPrepareConfig(params: {
        action?: 'create' | 'edit';
        with_good_pass: 0 | 1;
        with_discount_card: 0 | 1;
        customer_id: number;
        with_wallet_pass_holder: 0 | 1;
        request_timezone: string;
        order_id?: number;
    }): Promise<Discount[]>;
    batchSearch(code: string, options?: {
        customerId?: number;
        orderId?: number;
    }): Promise<Discount[]>;
    batchSearchByProductIds(productIds: number[]): Promise<any>;
    filterEnabledDiscountList(discountList: Discount[]): Discount[];
    private checkUsageCreditsLimit;
    uniqueByProductId(discountList: Discount[]): Discount[];
    filterDiscountListByProductIds(discountList: Discount[], productIds: number[]): Discount[];
    calcDiscountApplicableProductTotalPrice(discount: Discount): number | undefined;
    destroy(): Promise<void>;
    clear(): Promise<void>;
    storeChange(): void;
}
export type { Discount } from './types';
