import { EntityManager, Repository } from 'typeorm';
import { UserEntity } from './entities/user.entity';
import { UserRepository } from './user.repository';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { Logs } from 'src/api-logs/entities/logs.entity';
import { UserLoginDto } from './dto/user-login.dto';
import { ChangePasswordDto } from './dto/change-password.dto';
import { CourseRepository } from 'src/courses/courses.repository';
import { JobRepository } from 'src/job/job.repository';
import { CityRepository } from 'src/cities/cities.repository';
export declare class UserService {
    private readonly user;
    private readonly userRepository;
    private readonly courseRepository;
    private readonly jobRepository;
    private readonly cityRepository;
    private readonly logsRepository;
    constructor(user: Repository<UserEntity>, userRepository: UserRepository, courseRepository: CourseRepository, jobRepository: JobRepository, cityRepository: CityRepository, logsRepository: Repository<Logs>);
    generateRandomString(length: number): string;
    processExcelFile(filePath: string, manager: EntityManager): Promise<void>;
    private toTitleCase;
    create(createUserDto: CreateUserDto, manager: EntityManager): Promise<UserEntity>;
    approveUser(id: string, status: number): Promise<{
        id: string;
        first_name: string;
        middle_name: string;
        last_name: string;
        password: string;
        email: string;
        city_id: string;
        job_id: string;
        contact_no: number;
        batch: number;
        date_of_birth: Date;
        designation: string;
        company_name: string;
        company_address: string;
        home_town: string;
        is_admin: number;
        profile_picture: string;
        updated_at: Date;
        status: number;
        access_token: string;
        access_token_expiry: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        fcm_token: string;
        course: string[];
        created_at: Date;
        deleted_at: Date;
        job: import("../job/entities/job.entity").JobEntity;
        city: import("../cities/entities/city.entity").CityEntity;
        posts: import("../posts/entities/post.entity").PostEntity[];
    }>;
    update(id: string, updateUserDto: UpdateUserDto): Promise<import("typeorm").UpdateResult>;
    remove(id: string): Promise<import("typeorm").UpdateResult>;
    login(loginDto: UserLoginDto, deviceType: any): Promise<UserEntity>;
    changePassword(changePassDto: ChangePasswordDto): Promise<{
        profile_picture: string;
        id: string;
        first_name: string;
        middle_name: string;
        last_name: string;
        password: string;
        email: string;
        city_id: string;
        job_id: string;
        contact_no: number;
        batch: number;
        date_of_birth: Date;
        designation: string;
        company_name: string;
        company_address: string;
        home_town: string;
        is_admin: number;
        updated_at: Date;
        status: number;
        access_token: string;
        access_token_expiry: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        fcm_token: string;
        course: string[];
        created_at: Date;
        deleted_at: Date;
        job: import("../job/entities/job.entity").JobEntity;
        city: import("../cities/entities/city.entity").CityEntity;
        posts: import("../posts/entities/post.entity").PostEntity[];
    }>;
    forgotPassword(email: string): Promise<{
        userDetail: Partial<UserEntity> | null;
        token: string | null;
    }>;
    resetPassword(email: string, token: string, newPassword: string): Promise<void>;
    logout(id: string): Promise<void>;
    findAllActiveUser(take: number, skip: number, search: string, years: number[], courseIds: string[], dateOfBirth: string, cityIds: string[], jobIds: string[], key: string, order: string): Promise<{
        count: number;
        data: {
            profile_picture: string;
            city_id: {
                id: string;
                name: string;
                state: string;
            };
            job_id: {
                id: string;
                name: string;
            };
            id: string;
            first_name: string;
            middle_name: string;
            last_name: string;
            password: string;
            email: string;
            contact_no: number;
            batch: number;
            date_of_birth: Date;
            designation: string;
            company_name: string;
            company_address: string;
            home_town: string;
            is_admin: number;
            updated_at: Date;
            status: number;
            access_token: string;
            access_token_expiry: string;
            password_reset_token: string;
            password_reset_token_expiry: string;
            fcm_token: string;
            course: string[];
            created_at: Date;
            deleted_at: Date;
            posts: import("../posts/entities/post.entity").PostEntity[];
        }[];
    }>;
    findForApproval(take: number, skip: number): Promise<{
        count: number;
        data: {
            profile_picture: string;
            city_id: {
                id: string;
                name: string;
                state: string;
            };
            job_id: {
                id: string;
                name: string;
            };
            id: string;
            first_name: string;
            middle_name: string;
            last_name: string;
            password: string;
            email: string;
            contact_no: number;
            batch: number;
            date_of_birth: Date;
            designation: string;
            company_name: string;
            company_address: string;
            home_town: string;
            is_admin: number;
            updated_at: Date;
            status: number;
            access_token: string;
            access_token_expiry: string;
            password_reset_token: string;
            password_reset_token_expiry: string;
            fcm_token: string;
            course: string[];
            created_at: Date;
            deleted_at: Date;
            posts: import("../posts/entities/post.entity").PostEntity[];
        }[];
    }>;
    findAllUserByFilter(years: number[], courseIds: string[]): Promise<{
        profile_picture: string;
        id: string;
        first_name: string;
        middle_name: string;
        last_name: string;
        password: string;
        email: string;
        city_id: string;
        job_id: string;
        contact_no: number;
        batch: number;
        date_of_birth: Date;
        designation: string;
        company_name: string;
        company_address: string;
        home_town: string;
        is_admin: number;
        updated_at: Date;
        status: number;
        access_token: string;
        access_token_expiry: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        fcm_token: string;
        course: string[];
        created_at: Date;
        deleted_at: Date;
        job: import("../job/entities/job.entity").JobEntity;
        city: import("../cities/entities/city.entity").CityEntity;
        posts: import("../posts/entities/post.entity").PostEntity[];
    }[]>;
    findOne(id: string): Promise<{
        profile_picture: string;
        city_id: {
            id: string;
            name: string;
            state: string;
        };
        job_id: {
            id: string;
            name: string;
        };
        id: string;
        first_name: string;
        middle_name: string;
        last_name: string;
        password: string;
        email: string;
        contact_no: number;
        batch: number;
        date_of_birth: Date;
        designation: string;
        company_name: string;
        company_address: string;
        home_town: string;
        is_admin: number;
        updated_at: Date;
        status: number;
        access_token: string;
        access_token_expiry: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        fcm_token: string;
        course: string[];
        created_at: Date;
        deleted_at: Date;
        posts: import("../posts/entities/post.entity").PostEntity[];
    }>;
    resetPasswordById(id: string): Promise<{
        profile_picture: string;
        city_id: {
            id: string;
            name: string;
            state: string;
        };
        job_id: {
            id: string;
            name: string;
        };
        id: string;
        first_name: string;
        middle_name: string;
        last_name: string;
        password: string;
        email: string;
        contact_no: number;
        batch: number;
        date_of_birth: Date;
        designation: string;
        company_name: string;
        company_address: string;
        home_town: string;
        is_admin: number;
        updated_at: Date;
        status: number;
        access_token: string;
        access_token_expiry: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        fcm_token: string;
        course: string[];
        created_at: Date;
        deleted_at: Date;
        posts: import("../posts/entities/post.entity").PostEntity[];
    }>;
}
