import { DFWConfig, DFWScheme, DFWModuleSchema } from "../.."; import { Database } from "../modules/DatabaseManager"; import { Express, Response, Request, NextFunction } from "express"; declare global { namespace Express { interface Request { dfw?: DFWScheme; } } } export default class DFWInstance { /** * default DFW config */ config: DFWConfig; /** * */ modules: DFWModuleSchema; /** * */ server: Express; port: number; /** * Initialices all dependencies and middlewares for DFW */ constructor(config?: DFWConfig); /** * Initialices the express server * @param port * @param callback */ startServer(port?: number, callback?: Function): Express; /** * * @param req * @param res */ touchAsync(req: Request, res: Response, next: NextFunction): Promise; /** * DFW Express Middleware for this instance * @param req * @param res * @param next */ middleware: (req: Request, res: Response, next: NextFunction) => void; /** * * @param name */ getDatabase: (name?: string) => Database; }