@chainsafe/libp2p-quic
Version:
A QUIC transport for libp2p
47 lines • 1.61 kB
TypeScript
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