import { QueryBus } from '../../../core/query/QueryBus';
import GetBondDetailsRequest from '../request/bond/GetBondDetailsRequest';
import BondDetailsViewModel from '../response/BondDetailsViewModel';
import CouponViewModel from '../response/CouponViewModel';
import CouponForViewModel from '../response/CouponForViewModel';
import CouponAmountForViewModel from '../response/CouponAmountForViewModel';
import PrincipalForViewModel from '../response/PrincipalForViewModel';
import GetAllCouponsRequest from '../request/bond/GetAllCouponsRequest';
import GetCouponForRequest from '../request/bond/GetCouponForRequest';
import GetPrincipalForRequest from '../request/bond/GetPrincipalForRequest';
import GetCouponRequest from '../request/bond/GetCouponRequest';
import CreateBondRequest from '../request/bond/CreateBondRequest';
import { SecurityViewModel } from '../security/Security';
import { CommandBus } from '../../../core/command/CommandBus';
import NetworkService from '../../../app/service/network/NetworkService';
import SetCouponRequest from '../request/bond/SetCouponRequest';
import UpdateMaturityDateRequest from '../request/bond/UpdateMaturityDateRequest';
import RedeemAtMaturityByPartitionRequest from '../request/bond/RedeemAtMaturityByPartitionRequest';
import FullRedeemAtMaturityRequest from '../request/bond/FullRedeemAtMaturityRequest';
import CreateTrexSuiteBondRequest from '../request/bond/CreateTrexSuiteBondRequest';
import AddProceedRecipientRequest from '../request/bond/AddProceedRecipientRequest';
import RemoveProceedRecipientRequest from '../request/bond/RemoveProceedRecipientRequest';
import UpdateProceedRecipientDataRequest from '../request/bond/UpdateProceedRecipientDataRequest';
import IsProceedRecipientRequest from '../request/bond/IsProceedRecipientRequest';
import { GetCouponHoldersRequest, GetTotalCouponHoldersRequest, GetProceedRecipientDataRequest, GetProceedRecipientsCountRequest, GetProceedRecipientsRequest } from '../request';
interface IBondInPort {
    create(request: CreateBondRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    getBondDetails(request: GetBondDetailsRequest): Promise<BondDetailsViewModel>;
    setCoupon(request: SetCouponRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    getCouponFor(request: GetCouponForRequest): Promise<CouponForViewModel>;
    getCouponAmountFor(request: GetCouponForRequest): Promise<CouponAmountForViewModel>;
    getPrincipalFor(request: GetPrincipalForRequest): Promise<PrincipalForViewModel>;
    getCoupon(request: GetCouponRequest): Promise<CouponViewModel>;
    getAllCoupons(request: GetAllCouponsRequest): Promise<CouponViewModel[]>;
    updateMaturityDate(request: UpdateMaturityDateRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    redeemAtMaturityByPartition(request: RedeemAtMaturityByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    fullRedeemAtMaturity(request: FullRedeemAtMaturityRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getCouponHolders(request: GetCouponHoldersRequest): Promise<string[]>;
    getTotalCouponHolders(request: GetTotalCouponHoldersRequest): Promise<number>;
    createTrexSuite(request: CreateTrexSuiteBondRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    addProceedRecipient(request: AddProceedRecipientRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    removeProceedRecipient(request: RemoveProceedRecipientRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    updateProceedRecipientData(request: UpdateProceedRecipientDataRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    isProceedRecipient(request: IsProceedRecipientRequest): Promise<{
        payload: boolean;
    }>;
    getProceedRecipientData(request: GetProceedRecipientDataRequest): Promise<{
        payload: string;
    }>;
    getProceedRecipientsCount(request: GetProceedRecipientsCountRequest): Promise<{
        payload: number;
    }>;
    getProceedRecipients(request: GetProceedRecipientsRequest): Promise<{
        payload: string[];
    }>;
}
declare class BondInPort implements IBondInPort {
    private readonly queryBus;
    private readonly commandBus;
    private readonly networkService;
    constructor(queryBus?: QueryBus, commandBus?: CommandBus, networkService?: NetworkService);
    create(req: CreateBondRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    getBondDetails(request: GetBondDetailsRequest): Promise<BondDetailsViewModel>;
    setCoupon(request: SetCouponRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    getCouponFor(request: GetCouponForRequest): Promise<CouponForViewModel>;
    getCouponAmountFor(request: GetCouponForRequest): Promise<CouponAmountForViewModel>;
    getPrincipalFor(request: GetPrincipalForRequest): Promise<PrincipalForViewModel>;
    getCoupon(request: GetCouponRequest): Promise<CouponViewModel>;
    getAllCoupons(request: GetAllCouponsRequest): Promise<CouponViewModel[]>;
    updateMaturityDate(request: UpdateMaturityDateRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    redeemAtMaturityByPartition(request: RedeemAtMaturityByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    fullRedeemAtMaturity(request: FullRedeemAtMaturityRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getCouponHolders(request: GetCouponHoldersRequest): Promise<string[]>;
    getTotalCouponHolders(request: GetTotalCouponHoldersRequest): Promise<number>;
    createTrexSuite(req: CreateTrexSuiteBondRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    updateProceedRecipientData(request: UpdateProceedRecipientDataRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    removeProceedRecipient(request: RemoveProceedRecipientRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    addProceedRecipient(request: AddProceedRecipientRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getProceedRecipients(request: GetProceedRecipientsRequest): Promise<{
        payload: string[];
    }>;
    getProceedRecipientsCount(request: GetProceedRecipientsCountRequest): Promise<{
        payload: number;
    }>;
    getProceedRecipientData(request: GetProceedRecipientDataRequest): Promise<{
        payload: string;
    }>;
    isProceedRecipient(request: IsProceedRecipientRequest): Promise<{
        payload: boolean;
    }>;
}
declare const BondToken: BondInPort;
export default BondToken;
