import { type Wallet as SolanaWallet } from "@solana/wallet-adapter-react";
import type { Connection } from "@solana/web3.js";
import type { WalletList } from "@stakekit/rainbowkit";
import type { QueryClient } from "@tanstack/react-query";
import type { RefObject } from "react";
import { createConfig } from "wagmi";
import type { Chain } from "wagmi/chains";
import type { SKExternalProviders } from "../../domain/types/wallets";
import type { ValidatorsConfig } from "../../domain/types/yields";
import type { GetEitherAsyncRight } from "../../types/utils";
import { getConfig as getCosmosConfig } from "../cosmos/config";
import { getConfig as getEvmConfig } from "../ethereum/config";
import { getConfig as getMiscConfig } from "../misc/config";
import type { SettingsProps, VariantProps } from "../settings/types";
import { getConfig as getSubstrateConfig } from "../substrate/config";
export type BuildWagmiConfig = typeof buildWagmiConfig;
declare const buildWagmiConfig: (opts: {
    disableInjectedProviderDiscovery: boolean;
    mapWalletFn?: (props: {
        id: string;
        iconUrl: string | (() => Promise<string>);
        name: string;
        iconBackground: string;
    }) => {
        iconUrl: string | (() => Promise<string>);
        name: string;
        iconBackground: string;
    };
    externalProviders?: RefObject<SKExternalProviders>;
    forceWalletConnectOnly: boolean;
    customConnectors?: (chains: Chain[]) => WalletList;
    queryClient: QueryClient;
    isLedgerLive: boolean;
    isSafe: boolean;
    validatorsConfig: ValidatorsConfig;
    chainIconMapping: SettingsProps["chainIconMapping"];
    variant: VariantProps["variant"];
    solanaWallets: SolanaWallet[];
    solanaConnection: Connection;
    mapWalletListFn?: (val: WalletList) => WalletList;
    tonConnectManifestUrl: string | undefined;
}) => Promise<{
    evmConfig: GetEitherAsyncRight<ReturnType<typeof getEvmConfig>>;
    cosmosConfig: GetEitherAsyncRight<ReturnType<typeof getCosmosConfig>>;
    miscConfig: GetEitherAsyncRight<ReturnType<typeof getMiscConfig>>;
    substrateConfig: GetEitherAsyncRight<ReturnType<typeof getSubstrateConfig>>;
    wagmiConfig: ReturnType<typeof createConfig>;
    queryParamsInitChainId: number | undefined;
}>;
export declare const useWagmiConfig: () => import("@tanstack/react-query").UseQueryResult<{
    evmConfig: GetEitherAsyncRight<ReturnType<typeof getEvmConfig>>;
    cosmosConfig: GetEitherAsyncRight<ReturnType<typeof getCosmosConfig>>;
    miscConfig: GetEitherAsyncRight<ReturnType<typeof getMiscConfig>>;
    substrateConfig: GetEitherAsyncRight<ReturnType<typeof getSubstrateConfig>>;
    wagmiConfig: ReturnType<typeof createConfig>;
    queryParamsInitChainId: number | undefined;
}, Error>;
export declare const defaultConfig: import("wagmi").Config<readonly [{
    blockExplorers: {
        readonly default: {
            readonly name: "Etherscan";
            readonly url: "https://etherscan.io";
            readonly apiUrl: "https://api.etherscan.io/api";
        };
    };
    blockTime: 12000;
    contracts: {
        readonly ensUniversalResolver: {
            readonly address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
            readonly blockCreated: 23085558;
        };
        readonly multicall3: {
            readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
            readonly blockCreated: 14353601;
        };
    };
    ensTlds?: readonly string[] | undefined;
    id: 1;
    name: "Ethereum";
    nativeCurrency: {
        readonly name: "Ether";
        readonly symbol: "ETH";
        readonly decimals: 18;
    };
    experimental_preconfirmationTime?: number | undefined | undefined;
    rpcUrls: {
        readonly default: {
            readonly http: readonly ["https://eth.merkle.io"];
        };
    };
    sourceId?: number | undefined | undefined;
    testnet?: boolean | undefined | undefined;
    custom?: Record<string, unknown> | undefined;
    fees?: import("viem").ChainFees<undefined> | undefined;
    formatters?: undefined;
    prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
        phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
    }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
        phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
    }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
        runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
    }] | undefined;
    serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
}], Record<1, import("wagmi").Transport<string, Record<string, any>, import("viem").EIP1193RequestFn>>, readonly import("wagmi").CreateConnectorFn[]>;
export {};
