import { AuthService } from './auth.service';
import { LoginDto } from './dto/login.dto';
import { UserService } from '../user/user.service';
import { CreateUserDto } from '../user/dto/create-user.dto';
import { UpdateUserDto } from '../user/dto/update-user.dto';
export declare class AuthController {
    private readonly authService;
    private readonly userService;
    constructor(authService: AuthService, userService: UserService);
    register(createUserDto: CreateUserDto): Promise<{
        message: string;
        email: string;
    }>;
    verifyEmailOtp(body: {
        email: string;
        otp: string;
    }): Promise<{
        message: string;
    }>;
    resendOtp(body: {
        email: string;
        type: 'verify' | 'reset';
    }): Promise<{
        message: string;
    }>;
    forgotPassword(body: {
        email: string;
    }): Promise<{
        message: string;
    }>;
    verifyResetOtp(body: {
        email: string;
        otp: string;
    }): Promise<{
        message: string;
    }>;
    resetPassword(body: {
        email: string;
        password: string;
    }): Promise<{
        message: string;
    }>;
    login(loginDto: LoginDto): Promise<{
        access_token: string;
        user: {
            id: number;
            email: string;
            firstName: string;
            lastName: string;
            roles: import("../role/entities/role.entity").Role[];
            primary_scheme: any;
        };
    }>;
    getMe(req: any): Promise<import("../user/entities/user.entity").User>;
    updateUser(id: number, updateUserDto: UpdateUserDto): Promise<{
        message: string;
        user: import("../user/entities/user.entity").User;
    }>;
    getPendingUsers(): Promise<import("../user/entities/user.entity").User[]>;
    approveUser(id: number): Promise<{
        message: string;
    }>;
    rejectUser(id: number): Promise<{
        message: string;
    }>;
}
