import { ConfigService } from "@nestjs/config";
import { RolePermissionRepository } from "../../role-permission/repositories/role-permission.repository";
import { ChangePasswordDto } from "../dto/change-password.dto";
import { CreateUserDto } from "../dto/create-user.dto";
import { EditProfileDto } from "../dto/edit-profile.dto";
import { LoginDto } from "../dto/login.dto";
import { MobileLoginDto } from "../dto/mobile-login.dto";
import { ResetPasswordDto } from "../dto/reset-password.dto";
import { Auth } from "../entities/auth.entity";
import { UserLogin } from "../entities/user-login.entity";
import { AuthRepository } from "../repositories/auth.repository";
import { UserOldPasswordRepository } from "../repositories/old-passwords.repository";
import { UserLoginRepository } from "../repositories/user-login.repository";
import { RoleRepository } from "../../role/repositories/role.repository";
export declare class AuthService {
    private readonly authRepository;
    private readonly userLoginRepository;
    private readonly userOldPasswordRepository;
    private readonly configService;
    private readonly rolePermissionRepository;
    private readonly roleRepository;
    constructor(authRepository: AuthRepository, userLoginRepository: UserLoginRepository, userOldPasswordRepository: UserOldPasswordRepository, configService: ConfigService, rolePermissionRepository: RolePermissionRepository, roleRepository: RoleRepository);
    login(loginDto: LoginDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    forgotPassword(email: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    resetPassword(token: string, resetPasswordDto: ResetPasswordDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    create(createUserDto: CreateUserDto): Promise<void>;
    getProfile(token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    editProfile(token: string, editProfileDto: EditProfileDto, attachment: any): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    changePassword(token: string, changePasswordDto: ChangePasswordDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getUserByToken(token: string): Promise<any>;
    private checkUserStatus;
    private comparePassword;
    private checkLastPassword;
    private generateRandomString;
    generateToken(): string;
    generateRefreshToken(): string;
    private getRefreshTokenExpiry;
    refreshAccessToken(refreshToken: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    logout(token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    logoutAllSessionsByUserId(userId: number): Promise<void>;
    checkAdminExist(email: string): Promise<boolean>;
    private checkRoleAuthorization;
    mobileLogin(username: MobileLoginDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    verifyOtp(otp: string, user_id: number, fcm_token?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getFcmTokens(user_ids: number[]): Promise<{
        success: boolean;
        code: number;
        message: string;
        data?: UserLogin[];
    }>;
    removeFcmTokens(fcmTokens: string[]): Promise<any>;
    getAdmins(): Promise<Auth[]>;
    getSuperAdmins(): Promise<Auth[]>;
}
