import { NextFunction, Request, Response } from "express"; import Application from "../Application.js"; import ApplicationComponent from "../ApplicationComponent.js"; import Middleware from "../Middleware.js"; import AuthGuard from "./AuthGuard.js"; import AuthMethod from "./AuthMethod.js"; import AuthProof from "./AuthProof.js"; import User from "./models/User.js"; export default class AuthComponent extends ApplicationComponent { private readonly authGuard; constructor(app: Application, ...authMethods: AuthMethod>[]); initRoutes(): Promise; getAuthGuard(): AuthGuard; } export declare class AuthMiddleware extends Middleware { private authGuard?; private user; protected handle(req: Request, res: Response, next: NextFunction): Promise; getUser(): User | null; getAuthGuard(): AuthGuard; } export declare class RequireRequestAuthMiddleware extends Middleware { private user?; protected handle(req: Request, res: Response, next: NextFunction): Promise; getUser(): User; } export declare class RequireAuthMiddleware extends Middleware { private user?; protected handle(req: Request, res: Response, next: NextFunction): Promise; getUser(): User; } export declare class RequireGuestMiddleware extends Middleware { protected handle(req: Request, res: Response, next: NextFunction): Promise; } export declare class RequireAdminMiddleware extends Middleware { protected handle(req: Request, res: Response, next: NextFunction): Promise; }