import { UsersService } from './users.service';
import { AuthenticatedUser } from '../../common/decorators/current-user.decorator';
import { CreateUserDto, UpdateUserDto } from './users.dto';
export declare class UsersController {
    private readonly usersService;
    constructor(usersService: UsersService);
    list(user: AuthenticatedUser): 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;
    }>;
    create(user: AuthenticatedUser, dto: CreateUserDto): 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;
    }>;
}
