/// /// /// /// import { Server } from 'http'; import * as Koa from 'koa'; import * as Router from 'koa-router'; import { Component } from '../../Component'; import { IOn } from '../../index'; import { HttpRequestEvent } from '../HttpRequest/HttpRequestEvent'; import { Hub } from '../Hub'; export interface IRouteConfig { methods: string[]; path: string; component: Component; } /** * This acts as a http event emitter, maintaining routes to components * and specifically emitting to those components based on routes */ export declare class HttpServer extends Component { Emit: { (name: 'HttpServer.ready', component: HttpServer); (name: 'HttpServer.request', event: HttpRequestEvent): Promise | HttpRequestEvent; }; On: (IOn<{ name: 'HttpServer.ready'; event: HttpServer; }> & IOn<{ name: 'HttpServer.request'; event: HttpRequestEvent; return: Promise | HttpRequestEvent; }>); Declared: ('HttpServer.request' | 'HttpServer.request.response' | 'HttpServer.ready'); port: number; host: string; protocol: 'http' | 'https'; protected app: Koa; protected router: Router; protected server: Server; constructor(config: { port: HttpServer['port']; host: HttpServer['host']; }); readonly uri: string; route(routePath: string): { to: (component: Component) => HttpServer; }; private registerRoute({component, methods, path}); private createRequestMiddleware; }