import { account } from './account.js'; import { block } from './block.js'; import { contract } from './contract.js'; import { log } from './log.js'; import { proxy } from './proxy.js'; import { stats } from './stats.js'; import { transaction } from './transaction.js'; import { gastracker } from './gastracker.js'; import { usage } from './usage.js'; import type { Transport } from './types.js'; /** The namespaced Etherscan API returned by {@link init}. */ export interface EtherscanApi { log: ReturnType; proxy: ReturnType; stats: ReturnType; block: ReturnType; transaction: ReturnType; contract: ReturnType; account: ReturnType; gastracker: ReturnType; usage: ReturnType; } /** * Create an Etherscan API client. * * @param apiKey - Your Etherscan API key (works across all chains in V2) * @param chain - Chain name (e.g. `'sepolia'`, `'arbitrum'`) or numeric chainid; defaults to Ethereum mainnet * @param timeout - Request timeout in milliseconds (default 10000) * @param request - Custom HTTP transport; defaults to a built-in `node:https`/`node:http` request */ export declare function init(apiKey?: string, chain?: string | number | null, timeout?: number, request?: Transport): EtherscanApi;