import { ChainEventListener, IProviderAdapter } from '../data-structures/provider-adapter/IProviderAdapter';
import { ContractType, EthereumNetwork } from '../types/ethereum-network.types';
import { TronWallet } from '../types';
import { ethers } from 'ethers';
import { TronWeb } from 'tronweb';
export declare class TronProviderAdapter implements IProviderAdapter<TronWallet> {
    private chainId;
    private tronWeb;
    private address;
    private signerAdapter;
    private chainEventListener?;
    private accountsChangedHandler?;
    constructor(_chainId: number);
    initConnector(_connector: TronWallet): void;
    init(chainId?: number): Promise<void>;
    createSignableTronWeb: (chainId: number, address: string) => TronWeb;
    connectToConnector(): Promise<number>;
    disconnectFromConnector(): Promise<void>;
    connectAndPatchProvider(): Promise<number>;
    getChainId(): number | undefined;
    waitForTransaction(_chainId: number, transactionHash: string, confirmations: number): Promise<boolean>;
    signMessage(message: string | Uint8Array): Promise<string>;
    getAddress(): Promise<string>;
    setChainEventListener(chainEventListener: ChainEventListener): void;
    switchNetwork(network: EthereumNetwork): Promise<void>;
    signTypedData(_domain: ethers.TypedDataDomain, _types: Record<string, ethers.TypedDataField[]>, _value: Record<string, unknown>): Promise<string>;
    onAccountChanged(): Promise<unknown>;
    onChainChanged(_chainId?: number): Promise<unknown>;
    release(): void;
    getContract(chainId: number, contractType: ContractType, contractAddress?: string, runner?: ethers.ContractRunner): ethers.Contract;
    getContractWithSigner(_chainId: number, _contractType: ContractType, _contractAddress?: string): ethers.Contract;
    getContractWithFetcher(chainId: number, contractType: ContractType, contractAddress?: string): ethers.Contract;
    sendTransaction(_tx: ethers.TransactionRequest): Promise<ethers.TransactionResponse>;
    getGasPrice(_chainId: number): Promise<bigint>;
    isPermitterAvailable(): boolean;
    getTronWeb(): TronWeb;
}
declare const _default: <T = unknown>(chainId: number) => IProviderAdapter<T>;
export default _default;
