import { Chain } from './blockchain/index.ts'; import { FullEthereumService } from './service/index.ts'; import type { Blockchain } from '@ethereumjs/blockchain'; import type { GenesisState } from '@ethereumjs/common'; import type { AbstractLevel } from 'abstract-level'; import type { Config } from './config.ts'; import type { MultiaddrLike } from './types.ts'; export interface EthereumClientOptions { /** Client configuration */ config: Config; /** Custom blockchain (optional) */ blockchain?: Blockchain; /** * Database to store blocks and metadata. * Should be an abstract-leveldown compliant store. * * Default: Database created by the Blockchain class */ chainDB?: AbstractLevel; /** * Database to store the state. * Should be an abstract-leveldown compliant store. * * Default: Database created by the MerklePatriciaTrie class */ stateDB?: AbstractLevel; /** * Database to store tx receipts, logs, and indexes. * Should be an abstract-leveldown compliant store. * * Default: Database created in datadir folder */ metaDB?: AbstractLevel; bootnodes?: MultiaddrLike[]; clientFilter?: string[]; refreshInterval?: number; genesisState?: GenesisState; genesisStateRoot?: Uint8Array; statelessVerkle?: boolean; } /** * Represents the top-level ethereum node, and is responsible for managing the * lifecycle of included services. * @memberof module:node */ export declare class EthereumClient { config: Config; chain: Chain; service: FullEthereumService; opened: boolean; started: boolean; /** * Main entrypoint for client initialization. * * Safe creation of a Chain object awaiting the initialization * of the underlying Blockchain object. */ static create(options: EthereumClientOptions): Promise; /** * Create new node */ protected constructor(chain: Chain, options: EthereumClientOptions); /** * Open node. Must be called before node is started */ open(): Promise; /** * Starts node and all services and network servers. */ start(): Promise; /** * Stops node and all services and network servers. */ stop(): Promise; /** * * @returns the RLPx server (if it exists) */ server(): import("./net/server/rlpxserver.ts").RlpxServer | undefined; } //# sourceMappingURL=client.d.ts.map