import { JwtService } from '@nestjs/jwt';
import { Repository, EntityManager } from 'typeorm';
import { User, USER_ROLE } from '../entity/user.entity';
import { JwtConfigOptions } from './interfaces/jwt-config.interface';
import { ValidationResult } from './interfaces/validation-result.interface';
import { PasswordResetResult } from './interfaces/password-reset-result.interface';
export declare class AuthService {
    private readonly userRepository;
    private readonly jwtService;
    private readonly jwtConfig;
    private readonly entityManager;
    private readonly logger;
    constructor(userRepository: Repository<User>, jwtService: JwtService, jwtConfig: JwtConfigOptions, entityManager: EntityManager);
    private isSuperAdminExists;
    validateUser(email: string, password: string): Promise<ValidationResult>;
    private generateToken;
    validateToken(token: string): Promise<User>;
    validateUserFromJWT(token: string): Promise<ValidationResult>;
    registerUser(email: string, password: string, role?: USER_ROLE, firstName?: string, lastName?: string, mobile?: string): Promise<User>;
    registerSuperAdmin(email: string, password: string, firstName?: string, lastName?: string, mobile?: string): Promise<User>;
    activateUser(userEmail: string, adminEmail: string, adminPassword: string): Promise<User>;
    activateUserWithToken(adminToken: string, userEmail: string): Promise<User>;
    changePassword(token: string, oldPassword: string, newPassword: string): Promise<boolean>;
    resetUserPassword(adminToken: string, userEmail: string): Promise<PasswordResetResult>;
}
