import { SafeEventEmitter } from "@web3auth/auth";
import { Analytics, type ChainNamespaceType, type CONNECTOR_STATUS_TYPE, type CustomChainConfig, type IConnector, type IdentityTokenInfo, type IPlugin, type IProvider, type IWeb3Auth, type IWeb3AuthCoreOptions, IWeb3AuthState, LoginModeType, type LoginParamMap, type ProjectConfig, type UserInfo, type WALLET_CONNECTOR_TYPE, type Web3AuthNoModalEvents } from "./base";
import { type AccountAbstractionProvider } from "./providers/account-abstraction-provider";
import { CommonJRPCProvider } from "./providers/base-provider";
export declare class Web3AuthNoModal extends SafeEventEmitter<Web3AuthNoModalEvents> implements IWeb3Auth {
    readonly coreOptions: IWeb3AuthCoreOptions;
    status: CONNECTOR_STATUS_TYPE;
    protected aaProvider: AccountAbstractionProvider | null;
    protected connectors: IConnector<unknown>[];
    protected commonJRPCProvider: CommonJRPCProvider | null;
    protected analytics: Analytics;
    protected plugins: Record<string, IPlugin>;
    private storage;
    private state;
    private loginMode;
    constructor(options: IWeb3AuthCoreOptions, initialState?: IWeb3AuthState);
    get currentChain(): CustomChainConfig | undefined;
    get connected(): boolean;
    get provider(): IProvider | null;
    get connectedConnectorName(): WALLET_CONNECTOR_TYPE | null;
    get cachedConnector(): string | null;
    get currentChainId(): string | null;
    get connectedConnector(): IConnector<unknown> | null;
    get accountAbstractionProvider(): AccountAbstractionProvider | null;
    get idToken(): string | null;
    set provider(_: IProvider | null);
    init(options?: {
        signal?: AbortSignal;
    }): Promise<void>;
    getConnector(connectorName: WALLET_CONNECTOR_TYPE, chainNamespace?: ChainNamespaceType): IConnector<unknown> | null;
    clearCache(): void;
    cleanup(): Promise<void>;
    switchChain(params: {
        chainId: string;
    }): Promise<void>;
    /**
     * Connect to a specific wallet connector
     * @param connectorName - Key of the wallet connector to use.
     */
    connectTo<T extends WALLET_CONNECTOR_TYPE>(connectorName: T, loginParams?: LoginParamMap[T], loginMode?: LoginModeType): 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>;
    getIdentityToken(): Promise<IdentityTokenInfo>;
    getPlugin(name: string): IPlugin | null;
    setAnalyticsProperties(properties: Record<string, unknown>): void;
    protected initChainsConfig(projectConfig: ProjectConfig): void;
    protected initAccountAbstractionConfig(projectConfig?: ProjectConfig): void;
    protected initUIConfig(projectConfig: ProjectConfig): void;
    protected initSessionTimeConfig(projectConfig: ProjectConfig): void;
    protected initCachedConnectorAndChainId(): void;
    protected initWalletServicesConfig(projectConfig: ProjectConfig): void;
    protected getInitializationTrackData(): {};
    protected setupCommonJRPCProvider(): Promise<void>;
    protected setupConnector(connector: IConnector<unknown>): Promise<void>;
    protected loadConnectors({ projectConfig, modalMode }: {
        projectConfig: ProjectConfig;
        modalMode?: boolean;
    }): Promise<void>;
    protected initPlugins(): Promise<void>;
    protected setConnectors(connectors: IConnector<unknown>[]): void;
    protected subscribeToConnectorEvents(connector: IConnector<unknown>): void;
    protected checkInitRequirements(): void;
    protected checkIfAutoConnect(connector: IConnector<unknown>): boolean;
    /**
     * Gets the initial chain configuration for a connector
     * @throws WalletInitializationError If no chain is found for the connector's namespace
     */
    protected getInitialChainIdForConnector(connector: IConnector<unknown>): CustomChainConfig;
    private cacheWallet;
    private setCurrentChain;
    private connectToPlugins;
    private setState;
    private loadState;
    private getStorageMethod;
}
