import { ControllerCreateHoldByPartitionRequest, CreateHoldByPartitionRequest, CreateHoldFromByPartitionRequest, ExecuteHoldByPartitionRequest, GetHeldAmountForByPartitionRequest, GetHeldAmountForRequest, GetHoldCountForByPartitionRequest, GetHoldForByPartitionRequest, GetHoldsIdForByPartitionRequest, ProtectedCreateHoldByPartitionRequest, ReclaimHoldByPartitionRequest, ReleaseHoldByPartitionRequest } from "../../request";
import { HoldViewModel } from "../../response";
import { BaseSecurityInPort } from "../BaseSecurityInPort";
export interface ISecurityInPortHold {
    createHoldByPartition(request: CreateHoldByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    createHoldFromByPartition(request: CreateHoldFromByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    controllerCreateHoldByPartition(request: ControllerCreateHoldByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    protectedCreateHoldByPartition(request: ProtectedCreateHoldByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    getHeldAmountFor(request: GetHeldAmountForRequest): Promise<number>;
    getHeldAmountForByPartition(request: GetHeldAmountForByPartitionRequest): Promise<number>;
    getHoldCountForByPartition(request: GetHoldCountForByPartitionRequest): Promise<number>;
    getHoldsIdForByPartition(request: GetHoldsIdForByPartitionRequest): Promise<number[]>;
    getHoldForByPartition(request: GetHoldForByPartitionRequest): Promise<HoldViewModel>;
    releaseHoldByPartition(request: ReleaseHoldByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    reclaimHoldByPartition(request: ReclaimHoldByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    executeHoldByPartition(request: ExecuteHoldByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
}
export declare class SecurityInPortHold extends BaseSecurityInPort implements ISecurityInPortHold {
    createHoldByPartition(request: CreateHoldByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    createHoldFromByPartition(request: CreateHoldFromByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    controllerCreateHoldByPartition(request: ControllerCreateHoldByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    protectedCreateHoldByPartition(request: ProtectedCreateHoldByPartitionRequest): Promise<{
        payload: number;
        transactionId: string;
    }>;
    getHeldAmountFor(request: GetHeldAmountForRequest): Promise<number>;
    getHeldAmountForByPartition(request: GetHeldAmountForByPartitionRequest): Promise<number>;
    getHoldCountForByPartition(request: GetHoldCountForByPartitionRequest): Promise<number>;
    getHoldsIdForByPartition(request: GetHoldsIdForByPartitionRequest): Promise<number[]>;
    getHoldForByPartition(request: GetHoldForByPartitionRequest): Promise<HoldViewModel>;
    releaseHoldByPartition(request: ReleaseHoldByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    reclaimHoldByPartition(request: ReclaimHoldByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    executeHoldByPartition(request: ExecuteHoldByPartitionRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
}
