import { JwtService } from '@nestjs/jwt';
import { UserService } from '../user/user.service';
import { User } from '../user/entities/user.entity';
import { MailsService } from '../mails/mails.service';
export declare class AuthService {
    private readonly userService;
    private readonly jwtService;
    private readonly mailsService;
    constructor(userService: UserService, jwtService: JwtService, mailsService: MailsService);
    private generateOtp;
    register(createUserDto: any): Promise<{
        message: string;
        email: string;
    }>;
    verifyEmailOtp(email: string, otp: string): Promise<{
        message: string;
    }>;
    resendOtp(email: string, type: 'verify' | 'reset'): Promise<{
        message: string;
    }>;
    forgotPassword(email: string): Promise<{
        message: string;
    }>;
    verifyResetOtp(email: string, otp: string): Promise<{
        message: string;
    }>;
    resetPassword(email: string, newPassword: string): Promise<{
        message: string;
    }>;
    validateUser(email: string, password: string): Promise<User>;
    login(user: User): Promise<{
        access_token: string;
        user: {
            id: number;
            email: string;
            firstName: string;
            lastName: string;
            roles: import("../role/entities/role.entity").Role[];
            primary_scheme: any;
        };
    }>;
    hashPassword(password: string): Promise<string>;
    approveUser(id: number): Promise<{
        message: string;
    }>;
    rejectUser(id: number): Promise<{
        message: string;
    }>;
}
