import { QueryBus } from "../../../core/query/QueryBus";
import { CommandBus } from "../../../core/command/CommandBus";
import NetworkService from "../../../app/service/network/NetworkService";
import { GetProceedRecipientDataRequest, GetProceedRecipientsCountRequest, GetProceedRecipientsRequest } from "../request";
import AddProceedRecipientRequest from "../request/bond/AddProceedRecipientRequest";
import CreateBondFixedRateRequest from "../request/bond/CreateBondFixedRateRequest";
import CreateBondKpiLinkedRateRequest from "../request/bond/CreateBondKpiLinkedRateRequest";
import CreateBondRequest from "../request/bond/CreateBondRequest";
import CreateTrexSuiteBondRequest from "../request/bond/CreateTrexSuiteBondRequest";
import FullRedeemAtMaturityRequest from "../request/bond/FullRedeemAtMaturityRequest";
import GetBondDetailsRequest from "../request/bond/GetBondDetailsRequest";
import GetPrincipalForRequest from "../request/bond/GetPrincipalForRequest";
import IsProceedRecipientRequest from "../request/bond/IsProceedRecipientRequest";
import RedeemAtMaturityByPartitionRequest from "../request/bond/RedeemAtMaturityByPartitionRequest";
import RemoveProceedRecipientRequest from "../request/bond/RemoveProceedRecipientRequest";
import UpdateMaturityDateRequest from "../request/bond/UpdateMaturityDateRequest";
import UpdateProceedRecipientDataRequest from "../request/bond/UpdateProceedRecipientDataRequest";
import { AddKpiDataRequest } from "../request/kpis/AddKpiDataRequest";
import BondDetailsViewModel from "../response/BondDetailsViewModel";
import PrincipalForViewModel from "../response/PrincipalForViewModel";
import { SecurityViewModel } from "../security/Security";
interface IBondInPort {
    create(request: CreateBondRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    createFixedRate(request: CreateBondFixedRateRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    getBondDetails(request: GetBondDetailsRequest): Promise<BondDetailsViewModel>;
    getPrincipalFor(request: GetPrincipalForRequest): Promise<PrincipalForViewModel>;
    updateMaturityDate(request: UpdateMaturityDateRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    redeemAtMaturityByPartition(request: RedeemAtMaturityByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    fullRedeemAtMaturity(request: FullRedeemAtMaturityRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    createTrexSuite(request: CreateTrexSuiteBondRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    addKpiData(request: AddKpiDataRequest): Promise<{
        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[];
    }>;
    createKpiLinkedRate(req: CreateBondKpiLinkedRateRequest): Promise<{
        security: SecurityViewModel;
        transactionId: 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;
    }>;
    createFixedRate(req: CreateBondFixedRateRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    createKpiLinkedRate(req: CreateBondKpiLinkedRateRequest): Promise<{
        security: SecurityViewModel;
        transactionId: string;
    }>;
    getBondDetails(request: GetBondDetailsRequest): Promise<BondDetailsViewModel>;
    getPrincipalFor(request: GetPrincipalForRequest): Promise<PrincipalForViewModel>;
    updateMaturityDate(request: UpdateMaturityDateRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    redeemAtMaturityByPartition(request: RedeemAtMaturityByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    fullRedeemAtMaturity(request: FullRedeemAtMaturityRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    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;
    }>;
    addKpiData(request: AddKpiDataRequest): Promise<{
        transactionId: string;
    }>;
}
declare const BondToken: BondInPort;
export default BondToken;
