UNPKG

@chainsafe/libp2p-quic

Version:
47 lines 1.61 kB
import { TypedEventEmitter } from '@libp2p/interface'; import { QuicConnection } from './connection.js'; import * as napi from './napi.js'; import type { ComponentLogger, CounterGroup, CreateListenerOptions, Listener, ListenerEvents, Logger, Metrics } from '@libp2p/interface'; import type { Multiaddr } from '@multiformats/multiaddr'; export interface QuicCreateListenerOptions extends CreateListenerOptions { } export interface QuicListenerMetrics { events?: CounterGroup; errors?: CounterGroup; } interface QuicListenerInit { options: QuicCreateListenerOptions; config: napi.QuinnConfig; logger: ComponentLogger; metrics?: Metrics; } type QuicListenerState = { status: 'ready'; } | { status: 'listening'; listener: napi.Server; listenAddr: Multiaddr; controller: AbortController; connections: Set<QuicConnection>; } | { status: 'closed'; }; export declare class QuicListener extends TypedEventEmitter<ListenerEvents> implements Listener { #private; readonly init: QuicListenerInit; readonly options: QuicCreateListenerOptions; readonly log: Logger; readonly metrics: QuicListenerMetrics; private readonly shutdownController; private addr; state: QuicListenerState; constructor(init: QuicListenerInit); updateAnnounceAddrs(addrs: Multiaddr[]): void; getAddrs(): Multiaddr[]; listen(ma: Multiaddr): Promise<void>; close(): Promise<void>; awaitInboundConnections(): Promise<void>; onInboundConnection(connection: napi.Connection): Promise<void>; } export {}; //# sourceMappingURL=listener.d.ts.map