import { JwtService } from '@nestjs/jwt';
import { LoginDto } from './dto/login.dto';
import { RegisterUserDto } from "../users/dto/register-user.dto";
import { LoggerService } from "../services/logger/logger.service";
import { JwtPayload } from './interfaces';
import { UsersService } from '../users/users.service';
import { RolesService } from "../roles/roles.service";
import { User } from "../users/entities/user.entity";
import { Role } from "../roles/entities/role.entity";
export declare class AuthService {
    private readonly usersService;
    private readonly rolesService;
    private readonly jwtService;
    private readonly logger;
    constructor(usersService: UsersService, rolesService: RolesService, jwtService: JwtService, logger: LoggerService);
    register(registerUserDto: RegisterUserDto): Promise<{
        user: Record<string, any>;
        token: string;
        permissions: Record<string, Record<string, string[]>>;
    }>;
    loginUser(loginDto: LoginDto): Promise<{
        user: Record<string, any>;
        token: string;
        permissions: Record<string, Record<string, string[]>>;
    }>;
    buildAuthResponse(user: User): Promise<{
        user: Record<string, any>;
        token: string;
        permissions: Record<string, Record<string, string[]>>;
    }>;
    getActiveRoles(user: User): Role[];
    getJwtToken(payload: JwtPayload): string;
    private handleDBExceptions;
}
