import {Files} from "formidable"; import {Type} from "../Utils"; import Middleware from "../Middleware"; import {FlashMessages} from "../components/SessionComponent"; import {Session, SessionData} from "express-session"; import {PasswordAuthProofSessionData} from "../auth/password/PasswordAuthProof"; declare global { namespace Express { export interface Request { getSession(): Session & Partial; getSessionOptional(): Session & Partial | undefined; files: Files; middlewares: Middleware[]; as(type: Type): M; flash(): FlashMessages; flash(message: string): unknown[]; flash(event: string, message: unknown): void; getPreviousUrl(): string | null; getIntendedUrl(): string | null; } } } declare module 'express-session' { interface SessionData { id?: string; previousUrl?: string; wantsSessionPersistence?: boolean; persistent?: boolean; isAuthenticated?: boolean; authPasswordProof?: PasswordAuthProofSessionData; csrf?: string; } }