import { type IProvider, type IWeb3AuthCoreOptions, IWeb3AuthState, type ProjectConfig, Web3AuthNoModal } from "@web3auth/no-modal";
import { type ConnectorsModalConfig, type IWeb3AuthModal } from "./interface";
import { LoginModal, type UIConfig } from "./ui";
export interface Web3AuthOptions extends IWeb3AuthCoreOptions {
    /**
     * Config for configuring modal ui display properties
     */
    uiConfig: Omit<UIConfig, "connectorListener" | "logoLight" | "logoDark"> & {
        /**
         * App logo to use in light mode
         */
        logoLight: string;
        /**
         * App logo to use in dark mode
         */
        logoDark: string;
    };
    /**
     * Config for configuring modal ui display properties
     */
    modalConfig?: ConnectorsModalConfig;
}
export declare class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
    loginModal: LoginModal;
    readonly options: Web3AuthOptions;
    private modalConfig;
    constructor(options: Web3AuthOptions, initialState?: IWeb3AuthState);
    init(options?: {
        signal?: AbortSignal;
    }): Promise<void>;
    connect(): Promise<IProvider | null>;
    protected initUIConfig(projectConfig: ProjectConfig): void;
    protected getInitializationTrackData(): Record<string, unknown>;
    private filterWalletRegistry;
    private getProjectAndWalletConfig;
    private initConnectors;
    private filterConnectors;
    private checkConnectorAvailability;
    private initInAppAndCachedConnectors;
    private initExternalConnectors;
    private onInitExternalWallets;
    private onSocialLogin;
    private onExternalWalletLogin;
    private onModalVisibility;
    private getChainNamespaces;
}
