import EventEmitter from 'events'; import express from 'express'; import * as http from 'http'; import internal from 'stream'; import { WebSocket } from 'ws'; export type ConnectionUpgradeEvent = { request: http.IncomingMessage; socket: internal.Duplex; head: Buffer; webSocket: WebSocket; }; /** * Generic server object. Handle typed event communication. * * @emits connection-upgraded */ export declare class HttpServer extends EventEmitter { static readonly UPLOADED_FILE_REGEXP: RegExp; static readonly MAX_UPGRADES_PER_SECOND = 3; static readonly MAX_UPGRADES_PER_MINUTE = 20; static readonly MAX_UPLOADS_PER_MINUTE = 10; private readonly app; private readonly httpServer; private readonly wss; private readonly wsCreateSecLimiter; private readonly wsCreateMinLimiter; private readonly fileUploadLimiter; constructor(); start(): void; private getExpressApp; private onServerUpgradeRequest; /** * On file upload */ onFileUpload(req: express.Request, res: express.Response): Promise; }