import { Response } from 'express';
import { AuthService } from './auth.service';
import { CreateUserDto } from 'modules/user/dto/create-user.dto';
import { UserResponseDto } from 'modules/user/dto/user-response.dto';
import { UserService } from 'modules/user/users.service';
import { ConfigService } from '@nestjs/config';
import { CreateAdminDto } from 'modules/user/dto/create-admin.dto';
import { UserLoginDto } from './dtos/user-login.dto';
import { ChangePasswordDto, ResetPasswordByEmailDto } from './dtos/change-password.dto';
import { VerifyEmailDto } from './dtos/verify-email.dto';
export declare class AuthController {
    private readonly configService;
    private readonly authService;
    private readonly userService;
    private readonly logger;
    constructor(configService: ConfigService, authService: AuthService, userService: UserService);
    googleAuth(req: any, res: Response): Promise<void>;
    googleAuthCallback(req: any, res: Response): Promise<void>;
    logOut(req: any, res: Response): Promise<Response<any, Record<string, any>>>;
    createUser(createUserDto: CreateUserDto): Promise<UserResponseDto>;
    createAdmin(createUserDto: CreateAdminDto): Promise<UserResponseDto>;
    login(userData: UserLoginDto, response: Response): Promise<Response<any, Record<string, any>>>;
    adminLogin(body: UserLoginDto, response: Response): Promise<Response<any, Record<string, any>>>;
    changePassword(userId: string, req: any, body: ChangePasswordDto): Promise<{
        message: string;
        user: UserResponseDto;
    }>;
    resetPasswordByEmail(body: ResetPasswordByEmailDto): Promise<{
        message: string;
        user: UserResponseDto;
    }>;
    verifyEmail(body: VerifyEmailDto): Promise<{
        message: string;
    }>;
    sendVerificationEmail(email: string): Promise<{
        message: string;
    }>;
}
