import { JwtService } from '@nestjs/jwt';
import { Repository } from 'typeorm';
import { UserEntity } from '../entities/user.entity';
import { TenantEntity } from '../entities/tenant.entity';
import { TenantSettingsEntity } from '../entities/tenant-settings.entity';
import { RolePermissionEntity } from '../entities/role-permission.entity';
import { RedisService } from '../redis/redis.service';
import { LoginDto, AuthResponseDto } from './dto';
export interface JwtPayload {
    sub: string;
    email: string;
    tenant_id: string;
}
export declare class AuthService {
    private readonly userRepo;
    private readonly tenantRepo;
    private readonly settingsRepo;
    private readonly rolePermRepo;
    private readonly jwtService;
    private readonly redisService;
    constructor(userRepo: Repository<UserEntity>, tenantRepo: Repository<TenantEntity>, settingsRepo: Repository<TenantSettingsEntity>, rolePermRepo: Repository<RolePermissionEntity>, jwtService: JwtService, redisService: RedisService);
    private getPermissionsMap;
    private getLockoutKey;
    private checkLockout;
    private recordFailedAttempt;
    private clearFailedAttempts;
    login(dto: LoginDto, tenantId: string): Promise<AuthResponseDto>;
    validateUserFromToken(payload: JwtPayload): Promise<UserEntity | null>;
    getProfile(userId: string, tenantId: string): Promise<{
        id: string;
        name: string;
        email: string;
        phone: string | null;
        tenant_id: string;
        role: string | null;
        role_id: string | null;
        permissions: Record<string, string>;
    }>;
}
