///
import { BadRequestException } from '@nestjs/common';
import { CommandBus } from '@nestjs/cqrs';
import { Request } from 'express';
import { IUserLoginInput, IAuthResponse, LanguagesEnum } from '@metad/contracts';
import { AuthService } from './auth.service';
import { User as IUser, User } from '../user/user.entity';
import { ChangePasswordRequestDTO, ResetPasswordRequestDTO } from '../password-reset/dto';
import { RegisterUserDTO } from '../user/dto';
export declare class AuthController {
private readonly authService;
private readonly commandBus;
constructor(authService: AuthService, commandBus: CommandBus);
authenticated(): Promise;
hasRole(roles: string[]): Promise;
signup(entity: RegisterUserDTO, request: Request, languageCode: LanguagesEnum): Promise;
create(entity: RegisterUserDTO, request: Request, languageCode: LanguagesEnum): Promise;
login(entity: IUserLoginInput, session: Record, req: Request): Promise;
verifyMail(token: string): Promise;
refreshToken(req: Request): Promise;
alive(req: Request): Promise<{
message: string;
user: Express.User;
}>;
resetPassword(request: ChangePasswordRequestDTO): Promise;
/**
* Request a password reset.
*
* @param body - Password reset request data.
* @param origin - Origin Request Header.
* @param languageCode - Language code.
* @returns
*/
requestPassword(body: ResetPasswordRequestDTO, origin: string, languageCode: LanguagesEnum): Promise;
resendVerificationMail(user: User, languageCode: LanguagesEnum): Promise;
}