import express = require("express"); import { Startup } from "./Startup"; import { Dictionary } from "./utils/Dictionary"; import { IController } from "./Controllers/IController"; import { RequestHandler, NextFunction } from "express-serve-static-core"; import { Socket, Server } from 'socket.io'; import { Channel } from "./Channels/Channel"; export declare type IAreaConfig = { name: string; controllersPath?: string; routerMount?: string; middleware?: Array; sessionware?: Array<(socket: Socket, next: NextFunction) => void>; staticFiles?: string; channels?: Array; }; export declare class Area { private router; private middleware; private socketware; name: string; configure: Startup; expressApp: express.Application; routerMount: string; io: Server; channels: Array; constructor(config: IAreaConfig); private configureArea; private configureSockets; private configureRouter; /** * Controllers must be decorated to be added to the area * @param controllers */ AddControllers(controllers: Dictionary): void; protected addControllers(controllers: Dictionary): void; private registerController; private registerRoute; }