import { RoleCode } from '@prisma/client';
import { PrismaService } from '../../prisma/prisma.service';
import { UpdateUserDto } from './users.dto';
export declare class UsersService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(tenantId: string | null): Promise<{
        id: string;
        createdAt: Date;
        status: import(".prisma/client").$Enums.UserStatus;
        email: string;
        phone: string | null;
        firstName: string | null;
        lastName: string | null;
        roles: ({
            role: {
                id: string;
                code: import(".prisma/client").$Enums.RoleCode;
                label: string;
                description: string | null;
            };
        } & {
            id: string;
            userId: string;
            roleId: string;
            tenantId: string | null;
            scopeComplexId: string | null;
            grantedAt: Date;
        })[];
    }[]>;
    findOne(id: string): Promise<{
        roles: ({
            role: {
                id: string;
                code: import(".prisma/client").$Enums.RoleCode;
                label: string;
                description: string | null;
            };
        } & {
            id: string;
            userId: string;
            roleId: string;
            tenantId: string | null;
            scopeComplexId: string | null;
            grantedAt: Date;
        })[];
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: import(".prisma/client").$Enums.UserStatus;
        email: string;
        phone: string | null;
        firstName: string | null;
        lastName: string | null;
        language: string;
        mfaEnabled: boolean;
        lastLoginAt: Date | null;
    }>;
    createWithRole(input: {
        email: string;
        password: string;
        firstName?: string;
        lastName?: string;
        phone?: string;
        roleCode: RoleCode;
        tenantId?: string | null;
        scopeComplexId?: string | null;
    }): Promise<{
        roles: ({
            role: {
                id: string;
                code: import(".prisma/client").$Enums.RoleCode;
                label: string;
                description: string | null;
            };
        } & {
            id: string;
            userId: string;
            roleId: string;
            tenantId: string | null;
            scopeComplexId: string | null;
            grantedAt: Date;
        })[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: import(".prisma/client").$Enums.UserStatus;
        email: string;
        phone: string | null;
        passwordHash: string;
        firstName: string | null;
        lastName: string | null;
        language: string;
        mfaSecret: string | null;
        mfaEnabled: boolean;
        lastLoginAt: Date | null;
    }>;
    update(id: string, dto: UpdateUserDto): Promise<{
        roles: ({
            role: {
                id: string;
                code: import(".prisma/client").$Enums.RoleCode;
                label: string;
                description: string | null;
            };
        } & {
            id: string;
            userId: string;
            roleId: string;
            tenantId: string | null;
            scopeComplexId: string | null;
            grantedAt: Date;
        })[];
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: import(".prisma/client").$Enums.UserStatus;
        email: string;
        phone: string | null;
        firstName: string | null;
        lastName: string | null;
        language: string;
        mfaEnabled: boolean;
        lastLoginAt: Date | null;
    }>;
    deactivate(id: string): Promise<{
        deleted: boolean;
    }>;
}
