import { Signer, Transaction } from "@hiero-ledger/sdk";
import { ethers } from "ethers";
import TransactionAdapter from "../TransactionAdapter";
import { MirrorNodeAdapter } from "../mirror/MirrorNodeAdapter";
import NetworkService from "../../../app/service/network/NetworkService";
import TransactionResponse from "../../../domain/context/transaction/TransactionResponse";
import { MirrorNodes } from "../../../domain/context/network/MirrorNode";
import { JsonRpcRelays } from "../../../domain/context/network/JsonRpcRelay";
import { Factories } from "../../../domain/context/factory/Factories";
import { Resolvers } from "../../../domain/context/factory/Resolvers";
import { BusinessLogicKeys } from "../../../domain/context/factory/BusinessLogicKeys";
import { TransactionType } from "../TransactionResponseEnums";
import Account from "../../../domain/context/account/Account";
import { TransactionExecutor } from "./TransactionExecutor";
import { FactoryOperations } from "./operations/FactoryOperations";
import { TransferOperations } from "./operations/TransferOperations";
import { IssuanceOperations } from "./operations/IssuanceOperations";
import { RoleOperations } from "./operations/RoleOperations";
import { HoldOperations } from "./operations/HoldOperations";
import { ClearingOperations } from "./operations/ClearingOperations";
import { ComplianceOperations } from "./operations/ComplianceOperations";
import { ControlListOperations } from "./operations/ControlListOperations";
import { PauseOperations } from "./operations/PauseOperations";
import { LockOperations } from "./operations/LockOperations";
import { SecurityOperations } from "./operations/SecurityOperations";
import { SecurityMetadataOperations } from "./operations/SecurityMetadataOperations";
import { AmortizationOperations } from "./operations/AmortizationOperations";
export declare abstract class BaseHederaTransactionAdapter extends TransactionAdapter implements TransactionExecutor {
    protected readonly mirrorNodeAdapter: MirrorNodeAdapter;
    protected readonly networkService: NetworkService;
    mirrorNodes: MirrorNodes;
    jsonRpcRelays: JsonRpcRelays;
    factories: Factories;
    resolvers: Resolvers;
    businessLogicKeysCommon: BusinessLogicKeys;
    businessLogicKeysEquity: BusinessLogicKeys;
    businessLogicKeysBond: BusinessLogicKeys;
    protected signer: Signer;
    protected factoryOps: FactoryOperations;
    protected transferOps: TransferOperations;
    protected issuanceOps: IssuanceOperations;
    protected roleOps: RoleOperations;
    protected holdOps: HoldOperations;
    protected clearingOps: ClearingOperations;
    protected complianceOps: ComplianceOperations;
    protected controlListOps: ControlListOperations;
    protected pauseOps: PauseOperations;
    protected lockOps: LockOperations;
    protected securityOps: SecurityOperations;
    protected securityMetadataOps: SecurityMetadataOperations;
    protected amortizationOps: AmortizationOperations;
    constructor(mirrorNodeAdapter: MirrorNodeAdapter, networkService: NetworkService);
    abstract processTransaction(tx: Transaction, transactionType: TransactionType, startDate?: string): Promise<TransactionResponse>;
    abstract getAccount(): Account;
    abstract supportsEvmOperations(): boolean;
    deployContract(bytecodeHex: string, gas: number): Promise<TransactionResponse>;
    executeContractCall(contractId: string, iface: ethers.Interface, functionName: string, params: unknown[], gasLimit: number, transactionType?: TransactionType, payableAmountHbar?: string, startDate?: string, _evmAddress?: string): Promise<TransactionResponse>;
    getNetworkService(): NetworkService;
    getMirrorNodeAdapter(): MirrorNodeAdapter;
    setMirrorNodes(mirrorNodes?: MirrorNodes): void;
    setJsonRpcRelays(jsonRpcRelays?: JsonRpcRelays): void;
    setFactories(factories?: Factories): void;
    setResolvers(resolvers?: Resolvers): void;
    setBusinessLogicKeysCommon(businessLogicKeys?: BusinessLogicKeys): void;
    setBusinessLogicKeysEquity(businessLogicKeys?: BusinessLogicKeys): void;
    setBusinessLogicKeysBond(businessLogicKeys?: BusinessLogicKeys): void;
    createEquity(...args: Parameters<FactoryOperations["createEquity"]>): Promise<TransactionResponse>;
    createBond(...args: Parameters<FactoryOperations["createBond"]>): Promise<TransactionResponse>;
    createBondFixedRate(...args: Parameters<FactoryOperations["createBondFixedRate"]>): Promise<TransactionResponse>;
    createBondKpiLinkedRate(...args: Parameters<FactoryOperations["createBondKpiLinkedRate"]>): Promise<TransactionResponse>;
    createTrexSuiteBond(...args: Parameters<FactoryOperations["createTrexSuiteBond"]>): Promise<TransactionResponse>;
    createTrexSuiteEquity(...args: Parameters<FactoryOperations["createTrexSuiteEquity"]>): Promise<TransactionResponse>;
    transfer(...args: Parameters<TransferOperations["transfer"]>): Promise<TransactionResponse>;
    transferAndLock(...args: Parameters<TransferOperations["transferAndLock"]>): Promise<TransactionResponse>;
    redeem(...args: Parameters<TransferOperations["redeem"]>): Promise<TransactionResponse>;
    burn(...args: Parameters<TransferOperations["burn"]>): Promise<TransactionResponse>;
    controllerTransfer(...args: Parameters<TransferOperations["controllerTransfer"]>): Promise<TransactionResponse>;
    forcedTransfer(...args: Parameters<TransferOperations["forcedTransfer"]>): Promise<TransactionResponse>;
    controllerRedeem(...args: Parameters<TransferOperations["controllerRedeem"]>): Promise<TransactionResponse>;
    operatorTransferByPartition(...args: Parameters<TransferOperations["operatorTransferByPartition"]>): Promise<TransactionResponse>;
    batchTransfer(...args: Parameters<TransferOperations["batchTransfer"]>): Promise<TransactionResponse>;
    batchForcedTransfer(...args: Parameters<TransferOperations["batchForcedTransfer"]>): Promise<TransactionResponse>;
    batchBurn(...args: Parameters<TransferOperations["batchBurn"]>): Promise<TransactionResponse>;
    issue(...args: Parameters<IssuanceOperations["issue"]>): Promise<TransactionResponse>;
    mint(...args: Parameters<IssuanceOperations["mint"]>): Promise<TransactionResponse>;
    batchMint(...args: Parameters<IssuanceOperations["batchMint"]>): Promise<TransactionResponse>;
    redeemAtMaturityByPartition(...args: Parameters<IssuanceOperations["redeemAtMaturityByPartition"]>): Promise<TransactionResponse>;
    fullRedeemAtMaturity(...args: Parameters<IssuanceOperations["fullRedeemAtMaturity"]>): Promise<TransactionResponse>;
    grantRole(...args: Parameters<RoleOperations["grantRole"]>): Promise<TransactionResponse>;
    applyRoles(...args: Parameters<RoleOperations["applyRoles"]>): Promise<TransactionResponse>;
    revokeRole(...args: Parameters<RoleOperations["revokeRole"]>): Promise<TransactionResponse>;
    renounceRole(...args: Parameters<RoleOperations["renounceRole"]>): Promise<TransactionResponse>;
    authorizeOperator(...args: Parameters<RoleOperations["authorizeOperator"]>): Promise<TransactionResponse>;
    revokeOperator(...args: Parameters<RoleOperations["revokeOperator"]>): Promise<TransactionResponse>;
    authorizeOperatorByPartition(...args: Parameters<RoleOperations["authorizeOperatorByPartition"]>): Promise<TransactionResponse>;
    revokeOperatorByPartition(...args: Parameters<RoleOperations["revokeOperatorByPartition"]>): Promise<TransactionResponse>;
    createHoldByPartition(...args: Parameters<HoldOperations["createHoldByPartition"]>): Promise<TransactionResponse>;
    createHoldFromByPartition(...args: Parameters<HoldOperations["createHoldFromByPartition"]>): Promise<TransactionResponse>;
    controllerCreateHoldByPartition(...args: Parameters<HoldOperations["controllerCreateHoldByPartition"]>): Promise<TransactionResponse>;
    protectedCreateHoldByPartition(...args: Parameters<HoldOperations["protectedCreateHoldByPartition"]>): Promise<TransactionResponse>;
    releaseHoldByPartition(...args: Parameters<HoldOperations["releaseHoldByPartition"]>): Promise<TransactionResponse>;
    reclaimHoldByPartition(...args: Parameters<HoldOperations["reclaimHoldByPartition"]>): Promise<TransactionResponse>;
    executeHoldByPartition(...args: Parameters<HoldOperations["executeHoldByPartition"]>): Promise<TransactionResponse>;
    activateClearing(...args: Parameters<ClearingOperations["activateClearing"]>): Promise<TransactionResponse>;
    deactivateClearing(...args: Parameters<ClearingOperations["deactivateClearing"]>): Promise<TransactionResponse>;
    clearingTransferByPartition(...args: Parameters<ClearingOperations["clearingTransferByPartition"]>): Promise<TransactionResponse>;
    clearingTransferFromByPartition(...args: Parameters<ClearingOperations["clearingTransferFromByPartition"]>): Promise<TransactionResponse>;
    protectedClearingTransferByPartition(...args: Parameters<ClearingOperations["protectedClearingTransferByPartition"]>): Promise<TransactionResponse>;
    approveClearingOperationByPartition(...args: Parameters<ClearingOperations["approveClearingOperationByPartition"]>): Promise<TransactionResponse>;
    cancelClearingOperationByPartition(...args: Parameters<ClearingOperations["cancelClearingOperationByPartition"]>): Promise<TransactionResponse>;
    reclaimClearingOperationByPartition(...args: Parameters<ClearingOperations["reclaimClearingOperationByPartition"]>): Promise<TransactionResponse>;
    clearingRedeemByPartition(...args: Parameters<ClearingOperations["clearingRedeemByPartition"]>): Promise<TransactionResponse>;
    clearingRedeemFromByPartition(...args: Parameters<ClearingOperations["clearingRedeemFromByPartition"]>): Promise<TransactionResponse>;
    protectedClearingRedeemByPartition(...args: Parameters<ClearingOperations["protectedClearingRedeemByPartition"]>): Promise<TransactionResponse>;
    clearingCreateHoldByPartition(...args: Parameters<ClearingOperations["clearingCreateHoldByPartition"]>): Promise<TransactionResponse>;
    clearingCreateHoldFromByPartition(...args: Parameters<ClearingOperations["clearingCreateHoldFromByPartition"]>): Promise<TransactionResponse>;
    protectedClearingCreateHoldByPartition(...args: Parameters<ClearingOperations["protectedClearingCreateHoldByPartition"]>): Promise<TransactionResponse>;
    operatorClearingCreateHoldByPartition(...args: Parameters<ClearingOperations["operatorClearingCreateHoldByPartition"]>): Promise<TransactionResponse>;
    operatorClearingRedeemByPartition(...args: Parameters<ClearingOperations["operatorClearingRedeemByPartition"]>): Promise<TransactionResponse>;
    operatorClearingTransferByPartition(...args: Parameters<ClearingOperations["operatorClearingTransferByPartition"]>): Promise<TransactionResponse>;
    grantKyc(...args: Parameters<ComplianceOperations["grantKyc"]>): Promise<TransactionResponse>;
    revokeKyc(...args: Parameters<ComplianceOperations["revokeKyc"]>): Promise<TransactionResponse>;
    addIssuer(...args: Parameters<ComplianceOperations["addIssuer"]>): Promise<TransactionResponse>;
    removeIssuer(...args: Parameters<ComplianceOperations["removeIssuer"]>): Promise<TransactionResponse>;
    setRevocationRegistryAddress(...args: Parameters<ComplianceOperations["setRevocationRegistryAddress"]>): Promise<TransactionResponse>;
    activateInternalKyc(...args: Parameters<ComplianceOperations["activateInternalKyc"]>): Promise<TransactionResponse>;
    deactivateInternalKyc(...args: Parameters<ComplianceOperations["deactivateInternalKyc"]>): Promise<TransactionResponse>;
    setOnchainID(...args: Parameters<ComplianceOperations["setOnchainID"]>): Promise<TransactionResponse>;
    setIdentityRegistry(...args: Parameters<ComplianceOperations["setIdentityRegistry"]>): Promise<TransactionResponse>;
    setCompliance(...args: Parameters<ComplianceOperations["setCompliance"]>): Promise<TransactionResponse>;
    updateExternalKycLists(...args: Parameters<ComplianceOperations["updateExternalKycLists"]>): Promise<TransactionResponse>;
    addExternalKycList(...args: Parameters<ComplianceOperations["addExternalKycList"]>): Promise<TransactionResponse>;
    removeExternalKycList(...args: Parameters<ComplianceOperations["removeExternalKycList"]>): Promise<TransactionResponse>;
    grantKycMock(...args: Parameters<ComplianceOperations["grantKycMock"]>): Promise<TransactionResponse>;
    revokeKycMock(...args: Parameters<ComplianceOperations["revokeKycMock"]>): Promise<TransactionResponse>;
    createExternalKycListMock(): Promise<TransactionResponse>;
    addToControlList(...args: Parameters<ControlListOperations["addToControlList"]>): Promise<TransactionResponse>;
    removeFromControlList(...args: Parameters<ControlListOperations["removeFromControlList"]>): Promise<TransactionResponse>;
    updateExternalControlLists(...args: Parameters<ControlListOperations["updateExternalControlLists"]>): Promise<TransactionResponse>;
    addExternalControlList(...args: Parameters<ControlListOperations["addExternalControlList"]>): Promise<TransactionResponse>;
    removeExternalControlList(...args: Parameters<ControlListOperations["removeExternalControlList"]>): Promise<TransactionResponse>;
    addToBlackListMock(...args: Parameters<ControlListOperations["addToBlackListMock"]>): Promise<TransactionResponse>;
    addToWhiteListMock(...args: Parameters<ControlListOperations["addToWhiteListMock"]>): Promise<TransactionResponse>;
    removeFromBlackListMock(...args: Parameters<ControlListOperations["removeFromBlackListMock"]>): Promise<TransactionResponse>;
    removeFromWhiteListMock(...args: Parameters<ControlListOperations["removeFromWhiteListMock"]>): Promise<TransactionResponse>;
    createExternalBlackListMock(): Promise<TransactionResponse>;
    createExternalWhiteListMock(): Promise<TransactionResponse>;
    pause(...args: Parameters<PauseOperations["pause"]>): Promise<TransactionResponse>;
    unpause(...args: Parameters<PauseOperations["unpause"]>): Promise<TransactionResponse>;
    updateExternalPauses(...args: Parameters<PauseOperations["updateExternalPauses"]>): Promise<TransactionResponse>;
    addExternalPause(...args: Parameters<PauseOperations["addExternalPause"]>): Promise<TransactionResponse>;
    removeExternalPause(...args: Parameters<PauseOperations["removeExternalPause"]>): Promise<TransactionResponse>;
    setPausedMock(...args: Parameters<PauseOperations["setPausedMock"]>): Promise<TransactionResponse>;
    createExternalPauseMock(): Promise<TransactionResponse>;
    lock(...args: Parameters<LockOperations["lock"]>): Promise<TransactionResponse>;
    release(...args: Parameters<LockOperations["release"]>): Promise<TransactionResponse>;
    setCoupon(...args: Parameters<SecurityOperations["setCoupon"]>): Promise<TransactionResponse>;
    cancelCoupon(...args: Parameters<SecurityOperations["cancelCoupon"]>): Promise<TransactionResponse>;
    setRate(...args: Parameters<SecurityOperations["setRate"]>): Promise<TransactionResponse>;
    setInterestRate(...args: Parameters<SecurityOperations["setInterestRate"]>): Promise<TransactionResponse>;
    setImpactData(...args: Parameters<SecurityOperations["setImpactData"]>): Promise<TransactionResponse>;
    addKpiData(...args: Parameters<SecurityOperations["addKpiData"]>): Promise<TransactionResponse>;
    updateMaturityDate(...args: Parameters<SecurityOperations["updateMaturityDate"]>): Promise<TransactionResponse>;
    addProceedRecipient(...args: Parameters<SecurityOperations["addProceedRecipient"]>): Promise<TransactionResponse>;
    removeProceedRecipient(...args: Parameters<SecurityOperations["removeProceedRecipient"]>): Promise<TransactionResponse>;
    updateProceedRecipientData(...args: Parameters<SecurityOperations["updateProceedRecipientData"]>): Promise<TransactionResponse>;
    setDividend(...args: Parameters<SecurityOperations["setDividend"]>): Promise<TransactionResponse>;
    cancelDividend(...args: Parameters<SecurityOperations["cancelDividend"]>): Promise<TransactionResponse>;
    setVotingRights(...args: Parameters<SecurityOperations["setVotingRights"]>): Promise<TransactionResponse>;
    cancelVoting(...args: Parameters<SecurityOperations["cancelVoting"]>): Promise<TransactionResponse>;
    setScheduledBalanceAdjustment(...args: Parameters<SecurityOperations["setScheduledBalanceAdjustment"]>): Promise<TransactionResponse>;
    cancelScheduledBalanceAdjustment(...args: Parameters<SecurityOperations["cancelScheduledBalanceAdjustment"]>): Promise<TransactionResponse>;
    takeSnapshot(...args: Parameters<SecurityOperations["takeSnapshot"]>): Promise<TransactionResponse>;
    triggerPendingScheduledSnapshots(...args: Parameters<SecurityOperations["triggerPendingScheduledSnapshots"]>): Promise<TransactionResponse>;
    triggerScheduledSnapshots(...args: Parameters<SecurityOperations["triggerScheduledSnapshots"]>): Promise<TransactionResponse>;
    setName(...args: Parameters<SecurityMetadataOperations["setName"]>): Promise<TransactionResponse>;
    setSymbol(...args: Parameters<SecurityMetadataOperations["setSymbol"]>): Promise<TransactionResponse>;
    setNominalValue(...args: Parameters<SecurityMetadataOperations["setNominalValue"]>): Promise<TransactionResponse>;
    setDocument(...args: Parameters<SecurityMetadataOperations["setDocument"]>): Promise<TransactionResponse>;
    removeDocument(...args: Parameters<SecurityMetadataOperations["removeDocument"]>): Promise<TransactionResponse>;
    updateConfigVersion(...args: Parameters<SecurityMetadataOperations["updateConfigVersion"]>): Promise<TransactionResponse>;
    updateConfig(...args: Parameters<SecurityMetadataOperations["updateConfig"]>): Promise<TransactionResponse>;
    updateResolver(...args: Parameters<SecurityMetadataOperations["updateResolver"]>): Promise<TransactionResponse>;
    protectPartitions(...args: Parameters<SecurityMetadataOperations["protectPartitions"]>): Promise<TransactionResponse>;
    unprotectPartitions(...args: Parameters<SecurityMetadataOperations["unprotectPartitions"]>): Promise<TransactionResponse>;
    protectedRedeemFromByPartition(...args: Parameters<SecurityMetadataOperations["protectedRedeemFromByPartition"]>): Promise<TransactionResponse>;
    protectedTransferFromByPartition(...args: Parameters<SecurityMetadataOperations["protectedTransferFromByPartition"]>): Promise<TransactionResponse>;
    freezePartialTokens(...args: Parameters<SecurityMetadataOperations["freezePartialTokens"]>): Promise<TransactionResponse>;
    unfreezePartialTokens(...args: Parameters<SecurityMetadataOperations["unfreezePartialTokens"]>): Promise<TransactionResponse>;
    setAddressFrozen(...args: Parameters<SecurityMetadataOperations["setAddressFrozen"]>): Promise<TransactionResponse>;
    batchSetAddressFrozen(...args: Parameters<SecurityMetadataOperations["batchSetAddressFrozen"]>): Promise<TransactionResponse>;
    batchFreezePartialTokens(...args: Parameters<SecurityMetadataOperations["batchFreezePartialTokens"]>): Promise<TransactionResponse>;
    batchUnfreezePartialTokens(...args: Parameters<SecurityMetadataOperations["batchUnfreezePartialTokens"]>): Promise<TransactionResponse>;
    recoveryAddress(...args: Parameters<SecurityMetadataOperations["recoveryAddress"]>): Promise<TransactionResponse>;
    addAgent(...args: Parameters<SecurityMetadataOperations["addAgent"]>): Promise<TransactionResponse>;
    removeAgent(...args: Parameters<SecurityMetadataOperations["removeAgent"]>): Promise<TransactionResponse>;
    setMaxSupply(...args: Parameters<SecurityMetadataOperations["setMaxSupply"]>): Promise<TransactionResponse>;
    setAmortization(...args: Parameters<AmortizationOperations["setAmortization"]>): Promise<TransactionResponse>;
    cancelAmortization(...args: Parameters<AmortizationOperations["cancelAmortization"]>): Promise<TransactionResponse>;
    setAmortizationHold(...args: Parameters<AmortizationOperations["setAmortizationHold"]>): Promise<TransactionResponse>;
    releaseAmortizationHold(...args: Parameters<AmortizationOperations["releaseAmortizationHold"]>): Promise<TransactionResponse>;
}
