import { QueryBus } from "../../../core/query/QueryBus";
import { CommandBus } from "../../../core/command/CommandBus";
import { GetCouponHoldersRequest, GetTotalCouponHoldersRequest } from "../request";
import CancelCouponRequest from "../request/bond/CancelCouponRequest";
import GetAllCouponsRequest from "../request/bond/GetAllCouponsRequest";
import GetCouponForRequest from "../request/bond/GetCouponForRequest";
import GetCouponsForRequest from "../request/bond/GetCouponsForRequest";
import GetCouponFromOrderedListAtRequest from "../request/bond/GetCouponFromOrderedListAtRequest";
import GetCouponRequest from "../request/bond/GetCouponRequest";
import GetCouponsOrderedListRequest from "../request/bond/GetCouponsOrderedListRequest";
import GetCouponsOrderedListTotalRequest from "../request/bond/GetCouponsOrderedListTotalRequest";
import SetCouponRequest from "../request/bond/SetCouponRequest";
import CouponAmountForViewModel from "../response/CouponAmountForViewModel";
import CouponForViewModel from "../response/CouponForViewModel";
import CouponViewModel from "../response/CouponViewModel";
interface ICouponInPort {
    setCoupon(request: SetCouponRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    cancelCoupon(request: CancelCouponRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getCouponFor(request: GetCouponForRequest): Promise<CouponForViewModel>;
    getCouponsFor(request: GetCouponsForRequest): Promise<{
        coupons: CouponForViewModel[];
        accounts: string[];
    }>;
    getCouponAmountFor(request: GetCouponForRequest): Promise<CouponAmountForViewModel>;
    getCoupon(request: GetCouponRequest): Promise<CouponViewModel>;
    getAllCoupons(request: GetAllCouponsRequest): Promise<CouponViewModel[]>;
    getCouponsOrderedList(request: GetCouponsOrderedListRequest): Promise<number[]>;
    getCouponsOrderedListTotal(request: GetCouponsOrderedListTotalRequest): Promise<number>;
    getCouponHolders(request: GetCouponHoldersRequest): Promise<string[]>;
    getTotalCouponHolders(request: GetTotalCouponHoldersRequest): Promise<number>;
    getCouponFromOrderedListAt(request: GetCouponFromOrderedListAtRequest): Promise<number>;
}
declare class CouponInPort implements ICouponInPort {
    private readonly queryBus;
    private readonly commandBus;
    constructor(queryBus?: QueryBus, commandBus?: CommandBus);
    setCoupon(request: SetCouponRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    cancelCoupon(request: CancelCouponRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getCouponFor(request: GetCouponForRequest): Promise<CouponForViewModel>;
    getCouponsFor(request: GetCouponsForRequest): Promise<{
        coupons: CouponForViewModel[];
        accounts: string[];
    }>;
    getCouponAmountFor(request: GetCouponForRequest): Promise<CouponAmountForViewModel>;
    getCoupon(request: GetCouponRequest): Promise<CouponViewModel>;
    getAllCoupons(request: GetAllCouponsRequest): Promise<CouponViewModel[]>;
    getCouponsOrderedList(request: GetCouponsOrderedListRequest): Promise<number[]>;
    getCouponsOrderedListTotal(request: GetCouponsOrderedListTotalRequest): Promise<number>;
    getCouponHolders(request: GetCouponHoldersRequest): Promise<string[]>;
    getTotalCouponHolders(request: GetTotalCouponHoldersRequest): Promise<number>;
    getCouponFromOrderedListAt(request: GetCouponFromOrderedListAtRequest): Promise<number>;
}
declare const CouponToken: CouponInPort;
export default CouponToken;
