import { SafeEventEmitter } from "@web3auth/auth";
import { ADAPTER_STATUS_TYPE, CustomChainConfig, IAdapter, IPlugin, IProvider, IWeb3Auth, IWeb3AuthCoreOptions, UserAuthInfo, UserInfo, WALLET_ADAPTER_TYPE, Web3AuthNoModalEvents } from "@web3auth/base";
import { CommonJRPCProvider } from "@web3auth/base-provider";
export declare class Web3AuthNoModal extends SafeEventEmitter<Web3AuthNoModalEvents> implements IWeb3Auth {
    readonly coreOptions: IWeb3AuthCoreOptions;
    connectedAdapterName: WALLET_ADAPTER_TYPE | null;
    status: ADAPTER_STATUS_TYPE;
    cachedAdapter: string | null;
    walletAdapters: Record<string, IAdapter<unknown>>;
    protected commonJRPCProvider: CommonJRPCProvider | null;
    private plugins;
    private storage;
    constructor(options: IWeb3AuthCoreOptions);
    get connected(): boolean;
    get provider(): IProvider | null;
    set provider(_: IProvider | null);
    init(): Promise<void>;
    getAdapter(adapterName: WALLET_ADAPTER_TYPE): IAdapter<unknown> | null;
    configureAdapter(adapter: IAdapter<unknown>): Web3AuthNoModal;
    clearCache(): void;
    addChain(chainConfig: CustomChainConfig): Promise<void>;
    switchChain(params: {
        chainId: string;
    }): Promise<void>;
    /**
     * Connect to a specific wallet adapter
     * @param walletName - Key of the walletAdapter to use.
     */
    connectTo<T>(walletName: WALLET_ADAPTER_TYPE, loginParams?: T): Promise<IProvider | null>;
    logout(options?: {
        cleanup: boolean;
    }): Promise<void>;
    getUserInfo(): Promise<Partial<UserInfo>>;
    enableMFA<T>(loginParams?: T): Promise<void>;
    manageMFA<T>(loginParams?: T): Promise<void>;
    authenticateUser(): Promise<UserAuthInfo>;
    addPlugin(plugin: IPlugin): IWeb3Auth;
    getPlugin(name: string): IPlugin | null;
    protected subscribeToAdapterEvents(walletAdapter: IAdapter<unknown>): void;
    protected checkInitRequirements(): void;
    private cacheWallet;
    private connectToPlugins;
}
