import SignClient from "@walletconnect/sign-client";
import { SessionTypes } from "@walletconnect/types";
import { ADAPTER_CATEGORY_TYPE, ADAPTER_STATUS_TYPE, AdapterInitOptions, AdapterNamespaceType, ChainNamespaceType, CustomChainConfig, SafeEventEmitterProvider, UserInfo, WalletConnectV2Data } from "@web3auth/base";
import { BaseEvmAdapter } from "@web3auth/base-evm-adapter";
import { WalletConnectV2AdapterOptions } from "./interface";
declare class WalletConnectV2Adapter extends BaseEvmAdapter<void> {
    readonly name: string;
    readonly adapterNamespace: AdapterNamespaceType;
    readonly currentChainNamespace: ChainNamespaceType;
    readonly type: ADAPTER_CATEGORY_TYPE;
    readonly adapterOptions: WalletConnectV2AdapterOptions;
    status: ADAPTER_STATUS_TYPE;
    adapterData: WalletConnectV2Data;
    connector: SignClient | null;
    activeSession: SessionTypes.Struct | null;
    private wcProvider;
    constructor(options?: WalletConnectV2AdapterOptions);
    get connected(): boolean;
    get provider(): SafeEventEmitterProvider | null;
    set provider(_: SafeEventEmitterProvider | null);
    init(options: AdapterInitOptions): Promise<void>;
    connect(): Promise<SafeEventEmitterProvider | null>;
    addChain(chainConfig: CustomChainConfig, init?: boolean): Promise<void>;
    switchChain(params: {
        chainId: string;
    }, init?: boolean): Promise<void>;
    getUserInfo(): Promise<Partial<UserInfo>>;
    disconnect(options?: {
        cleanup: boolean;
    }): Promise<void>;
    private cleanupPendingPairings;
    private checkForPersistedSession;
    private createNewSession;
    private onConnectHandler;
    private subscribeEvents;
}
export { WalletConnectV2Adapter };
