import type { Response } from 'express'; import type { TFunction } from 'i18next'; import AbstractController from '../modules/AbstractController.ts'; import type { FrameworkRequest } from '../services/http/HttpServer.ts'; import GetUserByToken from '../services/http/middleware/GetUserByToken.ts'; import RateLimiter from '../services/http/middleware/RateLimiter.ts'; declare class Auth extends AbstractController { get routes(): { post: { '/login': { handler: (req: FrameworkRequest & { appInfo: { request: { email: string; password: string; }; }; }, res: Response) => Promise>>; request: import("yup").ObjectSchema<{ email: string; password: string; }, import("yup").AnyObject, { email: undefined; password: undefined; }, "">; }; '/register': { handler: (req: FrameworkRequest & { appInfo: { request: { email: string; password: string; firstName?: string; lastName?: string; nickName?: string; }; i18n: { t: TFunction; language: string; }; }; }, res: Response) => Promise>>; request: import("yup").ObjectSchema<{ email: string; password: string; nickName: string | undefined; firstName: string | undefined; lastName: string | undefined; }, import("yup").AnyObject, { email: undefined; password: undefined; nickName: undefined; firstName: undefined; lastName: undefined; }, "">; }; '/logout': (req: FrameworkRequest & { appInfo: { user: { _id: string; }; }; }, res: Response) => Promise>>; '/verify': (req: FrameworkRequest, res: Response) => Promise>>; '/send-recovery-email': { handler: (req: FrameworkRequest & { appInfo: { request: { email: string; }; i18n: { t: TFunction; language: string; }; }; }, res: Response) => Promise>>; request: import("yup").ObjectSchema<{ email: string; }, import("yup").AnyObject, { email: undefined; }, "">; }; '/recover-password': { handler: (req: FrameworkRequest & { appInfo: { request: { passwordRecoveryToken: string; password: string; }; }; }, res: Response) => Promise>>; request: import("yup").ObjectSchema<{ password: string; passwordRecoveryToken: string; }, import("yup").AnyObject, { password: undefined; passwordRecoveryToken: undefined; }, "">; }; '/send-verification': { handler: (req: FrameworkRequest & { appInfo: { request: { email: string; }; i18n: { t: TFunction; language: string; }; }; }, res: Response) => Promise>>; request: import("yup").ObjectSchema<{ email: string; }, import("yup").AnyObject, { email: undefined; }, "">; }; }; }; postLogin(req: FrameworkRequest & { appInfo: { request: { email: string; password: string; }; }; }, res: Response): Promise>>; postRegister(req: FrameworkRequest & { appInfo: { request: { email: string; password: string; firstName?: string; lastName?: string; nickName?: string; }; i18n: { t: TFunction; language: string; }; }; }, res: Response): Promise>>; postLogout(req: FrameworkRequest & { appInfo: { user: { _id: string; }; }; }, res: Response): Promise>>; verifyUser(req: FrameworkRequest, res: Response): Promise>>; sendPasswordRecoveryEmail(req: FrameworkRequest & { appInfo: { request: { email: string; }; i18n: { t: TFunction; language: string; }; }; }, res: Response): Promise>>; recoverPassword(req: FrameworkRequest & { appInfo: { request: { passwordRecoveryToken: string; password: string; }; }; }, res: Response): Promise>>; sendVerification(req: FrameworkRequest & { appInfo: { request: { email: string; }; i18n: { t: TFunction; language: string; }; }; }, res: Response): Promise>>; static get middleware(): Map; } export default Auth;