/// import type { PortalNetworkRoutingTable } from './routingTable.js'; import type { NetworkId, StateNetworkRoutingTable } from '../index.js'; import type { IDiscv5CreateOptions } from '@chainsafe/discv5'; import type { NodeId } from '@chainsafe/enr'; import type { AbstractLevel } from 'abstract-level'; import type EventEmitter from 'events'; import type StrictEventEmitter from 'strict-event-emitter-types/types/src'; export interface PortalNetworkEvents { NodeAdded: (nodeId: NodeId, networkId: NetworkId) => void; NodeRemoved: (nodeId: NodeId, networkId: NetworkId) => void; ContentAdded: (key: string, contentType: number, content: string) => void; Verified: (key: string, verified: boolean) => void; SendTalkReq: (nodeId: string, requestId: string, payload: string) => void; SendTalkResp: (nodeId: string, requestId: string, payload: string) => void; } export declare enum TransportLayer { NODE = "node", WEB = "web", MOBILE = "mobile" } export interface PortalNetworkOpts { supportedNetworks?: NetworkId[]; radius?: bigint; bootnodes?: string[]; db?: AbstractLevel | undefined; metrics?: PortalNetworkMetrics; bindAddress?: string; transport?: TransportLayer; proxyAddress?: string; rebuildFromMemory?: boolean; config: Partial; dataDir?: string; dbSize(): Promise; trustedBlockRoot?: string; eventLog?: boolean; } export type PortalNetworkEventEmitter = StrictEventEmitter; export type RoutingTable = PortalNetworkRoutingTable | StateNetworkRoutingTable; interface Gauge { inc(value?: number): void; set(value: number): void; collect?(): void; } interface Counter { inc(value?: number): void; } export interface PortalNetworkMetrics { totalContentLookups: Counter; knownHistoryNodes: Gauge; knownDiscv5Nodes: Gauge; successfulContentLookups: Counter; failedContentLookups: Counter; offerMessagesSent: Counter; offerMessagesReceived: Counter; acceptMessagesSent: Counter; acceptMessagesReceived: Counter; findContentMessagesSent: Counter; findContentMessagesReceived: Counter; contentMessagesSent: Counter; contentMessagesReceived: Counter; findNodesMessagesSent: Counter; findNodesMessagesReceived: Counter; nodesMessagesSent: Counter; nodesMessagesReceived: Counter; totalBytesReceived: Counter; totalBytesSent: Counter; currentDBSize: Gauge; } /** Borrowed from @ethereumjs/client type definitions * https://github.com/ethereumjs/ethereumjs-monorepo/blob/8384cd445e7f16f527a55a48d23eaae51a3e3ba5/packages/client/src/rpc/types.ts#L1 */ export interface RpcTx { from?: string; to?: string; gas?: string; gasPrice?: string; value?: string; data?: string; maxPriorityFeePerGas?: string; maxFeePerGas?: string; type?: string; } export {}; //# sourceMappingURL=types.d.ts.map