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