/// import TypedEmitter from "typed-emitter"; import type WebSocket from "ws"; import type http from "http"; import type { Debugger } from "debug"; import type { Server } from "./Server"; import type { Runner } from "mocha"; export declare enum ServerEvents { STARTED = "started", RUNNING = "running", CONNECTION = "connection", DISCONNECTION = "disconnection", ERROR = "error", END = "end" } export type StartedListener = (server: Server) => void; export type RunningListener = (runner: Runner) => void; export type ConnectionListener = (ws: WebSocket, req: http.IncomingMessage) => void; export type DisconnectionListener = (ws: WebSocket, code: number, reason: string) => void; export type ErrorListener = (error: Error) => void; export type EndListener = () => void; export type MessageEvents = { started: StartedListener; connection: ConnectionListener; disconnection: DisconnectionListener; error: ErrorListener; end: EndListener; running: RunningListener; }; export declare class ServerEventEmitter implements TypedEmitter { private emitter; constructor(debug: Debugger); addListener(event: E, listener: MessageEvents[E]): this; removeListener(event: E, listener: MessageEvents[E]): this; removeAllListeners(event?: E): this; on(event: E, listener: MessageEvents[E]): this; once(event: E, listener: MessageEvents[E]): this; off(event: E, listener: MessageEvents[E]): this; emit(event: E, ...args: Parameters): boolean; setMaxListeners(n: number): this; getMaxListeners(): number; listeners(event: E): MessageEvents[E][]; rawListeners(event: E): MessageEvents[E][]; listenerCount(event: E): number; prependListener(event: E, listener: MessageEvents[E]): this; prependOnceListener(event: E, listener: MessageEvents[E]): this; eventNames(): (keyof MessageEvents)[]; }