import { EventEmitter } from 'events'; import { type Packet } from 'engine.io-parser'; import type { WSContext } from 'hono/ws'; import type { ServerWebSocket, WebSocketReadyState } from 'bun'; import * as parser from 'engine.io-parser'; export declare class Transport extends EventEmitter { name: string; /** * The session ID. */ sid: string; /** * Whether the transport is currently ready to send packets. */ writable: boolean; /** * The current state of the transport. * @protected */ protected _readyState: WebSocketReadyState; /** * Whether the transport is discarded and can be safely closed (used during upgrade). * @protected */ protected discarded: boolean; /** * The parser to use (depends on the revision of the {@link Transport#protocol}. * @protected */ protected parser: typeof parser; /** * Whether the transport supports binary payloads (else it will be base64-encoded) * @protected */ protected supportsBinary: boolean; private socket; constructor(); get readyState(): WebSocketReadyState; set readyState(state: WebSocketReadyState); /** * Flags the transport as discarded. * * @package */ discard(): void; /** * Closes the transport. * * @package */ close(fn?: () => void): void; /** * Closes the transport. * * @private */ doClose(fn?: () => void): void; /** * Initialize transport when WebSocket is ready */ onOpen(ev: Event, ws: WSContext>): void; /** * Handle incoming WebSocket message * Decodes the Engine.IO packet and passes it upstairs */ onMessage(ev: MessageEvent): void; /** * Handle WebSocket close */ onClose(ev: CloseEvent): void; /** * Handle WebSocket error * @param ev Event binded by bun ws * @param ws WebSocket instance * @param opts Optional options for error message and description * @returns void */ onError(ev: Event | any, ws: any, opts?: { msg?: string; desc?: string; }): void; /** * Send Engine.IO packet * Encodes the packet and sends it via WebSocket */ send(packets: Packet[]): void; }