/// /// import expressMod = require("express"); import { Server as NextServer } from "next"; import http = require("http"); export declare type ExpressApp = ReturnType; export declare class Server { ctx: Nextpress.Context; opts: { tag?: string; }; static __tag__: string; nodeHttpServer?: http.Server; expressApp?: ExpressApp; isProduction: boolean; constructor(ctx: Nextpress.Context, opts?: { tag?: string; }); options: { errorRoute: string; useNextjs: boolean; useHelmet: boolean; jwtOptions: { tokenHeader: string; tokenDuration: number; }; bundleAnalyzer: { analyzeServer: boolean; analyzeBrowser: boolean; }; }; static getDefaultContext(): Nextpress.Context; useHMR(): void; /** * all set, run */ run(): Promise; /** * app.use's on the express app */ setupGlobalMiddleware(expressApp: expressMod.Router): Promise; _nextApp?: NextServer; getNextApp(): NextServer; buildForProduction(): Promise; /** * this is meant to be overriden in order to set the server routes. */ setupRoutes({ app }: { app: ExpressApp; }): Promise; /** * the next.config.js */ getNextjsConfig(): any; createAuthMw_Jwt(): expressMod.RequestHandler; } interface User { id: number; email: string; } export declare class UserAuthSession { req: any; constructor(req: any); getUser(): Promise; setUser(user: User): Promise; logout(): Promise; } export declare class UserAuthJwt implements UserAuthSession { req: any; private opts; constructor(req: any, opts: { headerKey: string; secret: string; durationSeconds: number; }); private _user; getUser(): Promise; setUser(user: User): Promise; logout(): Promise; } declare global { namespace Express { interface Request { nextpressAuth: UserAuthSession | UserAuthJwt; } } } export {};