import { cloneDeep } from "@toruslabs/base-controllers";
import { type AccountAbstractionMultiChainConfig } from "@toruslabs/ethereum-controllers";
import { type BUILD_ENV_TYPE } from "@web3auth/auth";
import { type Chain } from "viem";
import { type CustomChainConfig } from "./chain/IChainInterface";
import { type WEB3AUTH_NETWORK_TYPE } from "./connector";
import { type UIConfig, type WalletServicesConfig } from "./core/IWeb3Auth";
import type { ProjectConfig, WalletRegistry } from "./interfaces";
export declare const isHexStrict: (hex: string) => boolean;
export declare const signerHost: (web3AuthNetwork?: WEB3AUTH_NETWORK_TYPE) => string;
export declare const fetchProjectConfig: ({ clientId, web3AuthNetwork, aaProvider, authBuildEnv, }: {
    clientId: string;
    web3AuthNetwork: WEB3AUTH_NETWORK_TYPE;
    aaProvider?: string;
    authBuildEnv?: BUILD_ENV_TYPE;
}) => Promise<ProjectConfig>;
export declare const fetchWalletRegistry: (url?: string) => Promise<WalletRegistry>;
export declare const normalizeWalletName: (name: string) => string;
export declare const fromWagmiChain: (chain: Chain) => CustomChainConfig;
export declare function withAbort<T>(fn: () => Promise<T>, signal?: AbortSignal, onAbort?: () => void): Promise<T>;
export declare const isBrowser: () => boolean;
export declare const fromViemChain: (chain: Chain) => CustomChainConfig;
export { cloneDeep };
export declare const getWhitelabelAnalyticsProperties: (uiConfig?: UIConfig) => {
    whitelabel_app_name: string;
    whitelabel_app_url: string;
    whitelabel_logo_light_enabled: boolean;
    whitelabel_logo_dark_enabled: boolean;
    whitelabel_default_language: import("@web3auth/auth").LANGUAGE_TYPE;
    whitelabel_theme_mode: import("@web3auth/auth").THEME_MODE_TYPE;
    whitelabel_use_logo_loader: boolean;
    whitelabel_theme_primary: string;
    whitelabel_theme_on_primary: string;
    whitelabel_tnc_link_enabled: boolean;
    whitelabel_privacy_policy_enabled: boolean;
};
export declare const getAaAnalyticsProperties: (accountAbstractionConfig?: AccountAbstractionMultiChainConfig) => {
    aa_smart_account_type: import("@toruslabs/ethereum-controllers").SmartAccountType;
    aa_chain_ids: string[];
    aa_bundler_urls: string[];
    aa_paymaster_urls: string[];
    aa_paymaster_enabled: boolean;
    aa_paymaster_context_enabled: boolean;
    aa_erc20_paymaster_enabled: boolean;
};
export declare const getWalletServicesAnalyticsProperties: (walletServicesConfig?: WalletServicesConfig) => {
    ws_confirmation_strategy: "modal" | "auto-approve" | "default";
    ws_enable_key_export: boolean;
    ws_show_widget_button: boolean;
    ws_button_position: import("@web3auth/ws-embed").BUTTON_POSITION_TYPE;
    ws_hide_nft_display: boolean;
    ws_hide_token_display: boolean;
    ws_hide_transfers: boolean;
    ws_hide_topup: boolean;
    ws_hide_receive: boolean;
    ws_hide_swap: boolean;
    ws_hide_show_all_tokens: boolean;
    ws_hide_wallet_connect: boolean;
    ws_hide_defi_positions_display: boolean;
    ws_default_portfolio: "token" | "nft" | "defi";
};
export declare const sdkVersion: string;
export declare const getErrorAnalyticsProperties: (error: unknown) => {
    error_message?: string;
    error_code?: number;
};
export declare const getHostname: (url: string) => string;
export declare const getCaipChainId: (chain: Pick<CustomChainConfig, "chainNamespace" | "chainId">) => string;
