import { BaseHandler, OutputFormat } from './base.handler';
import { AuthConfig } from '../types/auth';
export interface CouponAddOptions {
    name: string;
    type: 'MAX_OUT' | 'DISCOUNT';
    availableAmount: number;
    receiveStart: number;
    receiveEnd: number;
    useTimeType: 'RANGE' | 'DAY';
    useStart?: number;
    useEnd?: number;
    dayOfUse?: number;
    condition: 'UNCONDITIONAL' | 'FULL_REDUCE';
    discount?: number;
    full?: number;
    reduce?: number;
    limitPerPerson: number;
    output?: OutputFormat;
}
export interface CouponListOptions {
    page?: number;
    size?: number;
    status?: 'NOT_START' | 'GOING' | 'FINISHED' | 'INVALID';
    output?: OutputFormat;
}
export interface CouponDeleteOptions {
    couponIds: string[];
    output?: OutputFormat;
}
export interface ChannelCouponEnabledOptions {
    channelId: string;
    output?: OutputFormat;
}
export interface ChannelCouponUpdateEnabledOptions extends ChannelCouponEnabledOptions {
    enabled: 'Y' | 'N';
    force?: boolean;
}
export interface ChannelCouponListOptions extends ChannelCouponEnabledOptions {
    page?: number;
    size?: number;
    name?: string;
}
export interface ChannelCouponWriteOptions extends ChannelCouponEnabledOptions {
    couponIds: string[];
    force?: boolean;
}
export interface CouponServiceConfig {
    baseUrl: string;
    timeout?: number;
    debug?: boolean;
}
export declare class CouponHandler extends BaseHandler {
    private readonly authConfig;
    private readonly serviceConfig;
    constructor(authConfig: AuthConfig, serviceConfig: CouponServiceConfig);
    addCoupon(options: CouponAddOptions): Promise<void>;
    listCoupons(options?: CouponListOptions): Promise<void>;
    deleteCoupons(options: CouponDeleteOptions): Promise<void>;
    getChannelCouponEnabled(options: ChannelCouponEnabledOptions): Promise<void>;
    updateChannelCouponEnabled(options: ChannelCouponUpdateEnabledOptions): Promise<void>;
    listChannelCoupons(options: ChannelCouponListOptions): Promise<void>;
    addChannelCoupons(options: ChannelCouponWriteOptions): Promise<void>;
    deleteChannelCoupons(options: ChannelCouponWriteOptions): Promise<void>;
    private validateAddOptions;
    private validateListOptions;
    private validateDeleteOptions;
    private validateChannelId;
    private validateYn;
    private validateChannelCouponListOptions;
    private validateChannelCouponIds;
    private transformToAddParams;
    private transformToListParams;
    private displayAddResult;
    private displayListResult;
    private displayCouponsTable;
    private displayDeleteResult;
    private displayGenericWriteResult;
    private formatStatus;
    private formatDate;
}
//# sourceMappingURL=coupon.handler.d.ts.map