import { type Account, type Address, type Client, type ClientConfig, type ParseAccount, type Transport, type WalletActions, type WalletRpcSchema } from 'viem'; import type { ChainWithBaseContracts, ChainWithEns, CheckedChainWithEns } from '../contracts/consts.js'; import type { Assign, Prettify } from '../types.js'; import { type EnsWalletActions } from './decorators/wallet.js'; export type EnsWalletClientConfig = Assign, 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'>, { chain: TChain; }>; export type EnsWalletClient = Prettify & EnsWalletActions>>; /** * Creates an ENS Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro.html) configured for a [Chain](https://viem.sh/docs/clients/chains.html). * * @param config - {@link EnsWalletClientConfig} * @returns An ENS Wallet Client. {@link EnsWalletClient} * * @example * import { custom } from 'viem' * import { mainnet } from 'viem/chains' * import { createEnsWalletClient } from '@etn-sc/ensjs' * * const client = createEnsWalletClient({ * chain: mainnet, * transport: custom(window.ethereum), * }) */ export declare const createEnsWalletClient: ({ account, chain, key, name, transport, pollingInterval, }: EnsWalletClientConfig) => EnsWalletClient, ParseAccount>;