import { Adapter, AdapterState, WalletReadyState } from '@tronweb3/tronwallet-abstract-adapter';
import type { WalletConnectModalConfig } from '@walletconnect/modal';
export type WalletConnectWeb3ModalConfig = Omit<WalletConnectModalConfig, 'projectId'>;
import type { Transaction, SignedTransaction, AdapterName } from '@tronweb3/tronwallet-abstract-adapter';
import { ChainNetwork } from '@tronweb3/tronwallet-abstract-adapter';
import type { ThemeVariables } from '@tronweb3/walletconnect-tron';
import type { SignClientTypes } from '@walletconnect/types';
export declare const WalletConnectWalletName: AdapterName<"WalletConnect">;
export interface WalletConnectAdapterConfig {
    /**
     * Network to use, one of Mainnet,Shasta,Nile or chainId such as 0x2b6653dc
     */
    network: `${ChainNetwork}` | string;
    options: SignClientTypes.Options;
    /**
     * Theme mode configuration flag. By default themeMode option will be set to user system settings.
     * @default `system`
     * @type `dark` | `light`
     * @see https://docs.reown.com/appkit/react/core/theming
     */
    themeMode?: `dark` | `light`;
    /**
     * Theme variable configuration object.
     * @default undefined
     */
    themeVariables?: ThemeVariables;
    /**
     * WalletConnectModalOptions to WalletConnect.
     * Only some properties of themeVariables and themeMode are valiable. It's recomended to use `config.themeVariables` and `config.themeMode`.
     * Detailed documentation can be found in WalletConnect page: https://docs.walletconnect.com/advanced/walletconnectmodal/options.
     */
    web3ModalConfig?: WalletConnectWeb3ModalConfig;
}
export declare class WalletConnectAdapter extends Adapter {
    name: AdapterName<"WalletConnect">;
    url: string;
    icon: string;
    private _readyState;
    private _state;
    private _connecting;
    private _wallet;
    private _config;
    private _address;
    constructor(config: WalletConnectAdapterConfig);
    get address(): string | null;
    get readyState(): WalletReadyState;
    get state(): AdapterState;
    /**
     * Currently unused for WalletConnectAdapter.
     */
    get connecting(): boolean;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    signTransaction(transaction: Transaction): Promise<SignedTransaction>;
    signMessage(message: string): Promise<string>;
    /**
     * Get WalletConnect connection status.
     * Address is not empty if the WalletConnectWallet is connected.
     * @returns {object} status
     * @property {string} status.address - connected address
     */
    getConnectionStatus(): Promise<{
        address: string;
    }>;
    private _disconnected;
    private _accountsChanged;
}
//# sourceMappingURL=adapter.d.ts.map