import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { Response as ExpressResponse, Request } from 'express';
import { ApiLog } from 'src/api-logs/entities/api-log.entity';
import { DataSource, Repository } from 'typeorm';
import { UserLoginDto } from './dto/user-login.dto';
import { ChangePasswordDto } from './dto/change-password.dto';
import { forgetPasswordDto } from './dto/forgot-password.dto';
export declare class UserController {
    private readonly userService;
    private readonly apiLogRepository;
    private readonly connection;
    constructor(userService: UserService, apiLogRepository: Repository<ApiLog>, connection: DataSource);
    uploadExcelFile(res: ExpressResponse, file: Express.Multer.File): Promise<void>;
    create(createUserDto: CreateUserDto, attachment: any, res: ExpressResponse, req: Request): Promise<void>;
    login(loginDto: UserLoginDto, res: ExpressResponse, headers: any, req: Request): Promise<ExpressResponse<any, Record<string, any>>>;
    logout(id: string, res: ExpressResponse): Promise<void>;
    findForApproval(res: ExpressResponse, take: number, skip: number): Promise<void>;
    approveUser(id: string, status: number, res: ExpressResponse): Promise<void>;
    changePass(changePassDto: ChangePasswordDto, res: ExpressResponse): Promise<void>;
    findAllByFilter(res: ExpressResponse, years: number[], courseId: string[]): Promise<void>;
    findAll(take: number, skip: number, search: string, years: number[], courseIds: string[], dateOfBirth: string, cityIds: string[], jobIds: string[], key: string, order: string, res: ExpressResponse): Promise<void>;
    findOne(id: string, res: ExpressResponse): Promise<ExpressResponse<any, Record<string, any>>>;
    forgotPassword(inputEmail: any, res: ExpressResponse): Promise<ExpressResponse<any, Record<string, any>>>;
    resetPassword(resetPasswordDto: forgetPasswordDto, token: string, res: ExpressResponse): Promise<ExpressResponse<any, Record<string, any>>>;
    update(id: string, attachment: any, updateUserDto: UpdateUserDto, res: ExpressResponse): Promise<ExpressResponse<any, Record<string, any>>>;
    remove(id: string, res: ExpressResponse): Promise<ExpressResponse<any, Record<string, any>>>;
    resetPasswordById(id: string, res: ExpressResponse, req: Request): Promise<ExpressResponse<any, Record<string, any>>>;
}
