import { Response, User } from "@rtcts/isomorphic"; import Koa from "koa"; import Router from "koa-router"; import { Channels } from "../webSocket/Channels"; export interface BaseHttpTransportACL { readonly channel: string[]; } export declare abstract class BaseHttpTransport { protected readonly name: string; protected readonly channels: CHANNELS; protected readonly ACL: BaseHttpTransportACL; protected readonly switchers: { readonly channel: boolean; }; protected readonly router: Router; protected readonly User: new (data?: { [key: string]: any; }) => USER; protected readonly root: string; protected readonly webSocketIdHeaderKey: string; constructor(name: string, channels: CHANNELS, ACL: BaseHttpTransportACL, switchers: { channel: boolean; } | undefined, User: new (data?: { [key: string]: any; }) => USER, root?: string, webSocketIdHeaderKey?: string); getRouter: () => Router; setMiddleware: (middleware: Koa.Middleware) => void; protected get basePath(): string; protected channel(): void; protected executor(ctx: Koa.Context, URL: string, ACL: string[], switcher: boolean, worker: (userId: string, wsid: string) => Promise | void): Promise; protected send(ctx: Koa.Context, response: Response): boolean; }