import { Request, Response } from "express"; import User from "../auth/models/User.js"; import UserEmail from "../auth/models/UserEmail.js"; import Controller from "../Controller.js"; export default class BackendController extends Controller { private static readonly menu; static registerMenuElement(element: BackendMenuElement): void; constructor(); getRoutesPrefix(): string; routes(): void; protected getIndex(req: Request, res: Response): Promise; protected getAccountApproval(req: Request, res: Response): Promise; protected postApproveAccount(req: Request, res: Response): Promise; protected postRejectAccount(req: Request, res: Response): Promise; protected accountRequest(req: Request): Promise<{ account: User; email: UserEmail | null; }>; } export interface BackendMenuElement { /** * Returns the link of this menu element (usually using {@code route}) */ getLink(): Promise; /** * The string part of the link display */ getDisplayString(): Promise; /** * An optional feather icon name */ getDisplayIcon(): Promise; }