import { Client, Transaction } from '@hashgraph/sdk';
import { CustodialWalletService } from '@hashgraph/hedera-custodians-integration';
import TransactionResponse from '../../../../../domain/context/transaction/TransactionResponse';
import Account from '../../../../../domain/context/account/Account';
import { InitializationData } from '../../../../out/TransactionAdapter';
import EventService from '../../../../../app/service/event/EventService';
import { MirrorNodeAdapter } from '../../../../out/mirror/MirrorNodeAdapter';
import NetworkService from '../../../../../app/service/network/NetworkService';
import { Environment } from '../../../../../domain/context/network/Environment';
import { SupportedWallets } from '../../../../../domain/context/network/Wallet';
import { WalletPairedEvent } from '../../../../../app/service/event/WalletEvent';
import { TransactionType } from '../../../../out/TransactionResponseEnums';
import { HederaTransactionAdapter } from '../../../../out/hs/HederaTransactionAdapter';
import DfnsSettings from '../../../../../core/settings/custodialWalletSettings/DfnsSettings';
import FireblocksSettings from '../../../../../core/settings/custodialWalletSettings/FireblocksSettings';
import AWSKMSSettings from '../../../../../core/settings/custodialWalletSettings/AWSKMSSettings';
export declare abstract class CustodialTransactionAdapter extends HederaTransactionAdapter {
    protected readonly eventService: EventService;
    protected readonly mirrorNodeAdapter: MirrorNodeAdapter;
    protected readonly networkService: NetworkService;
    protected client: Client;
    protected custodialWalletService: CustodialWalletService;
    account: Account;
    protected network: Environment;
    constructor(eventService: EventService, mirrorNodeAdapter: MirrorNodeAdapter, networkService: NetworkService);
    protected initClient(accountId: string, publicKey: string): void;
    protected signingService: (message: Uint8Array) => Promise<Uint8Array>;
    signAndSendTransaction: (transaction: Transaction, transactionType: TransactionType, nameFunction?: string, abi?: object[]) => Promise<TransactionResponse>;
    protected createWalletPairedEvent(wallet: SupportedWallets): WalletPairedEvent;
    protected abstract initCustodialWalletService(settings: DfnsSettings | FireblocksSettings | AWSKMSSettings): void;
    protected abstract getSupportedWallet(): SupportedWallets;
    register(settings: DfnsSettings | FireblocksSettings): Promise<InitializationData>;
    getAccount(): Account;
    sign(message: string): Promise<string>;
}
