import { Repository } from 'typeorm'; import { AdminCreateUserDto, AdminUpdateUserDto } from '../dto/admin-user.dto'; import { UserService } from '../../user/services/user.service'; import { AdminUserManagementService } from '../services/admin-user-management.service'; import { TenantService } from '../../tenant/services/tenant.service'; import { NestAuthMFASecret } from '../../auth/entities/mfa-secret.entity'; import { MfaService } from '../../auth/services/mfa.service'; import { SessionManagerService } from '../../session/services/session-manager.service'; import { AuthConfigService } from '../../core/services/auth-config.service'; import { NestAuthUserAccess } from '../../user/entities/user-access.entity'; import { NestAuthPlatformAccess } from '../../user/entities/platform-access.entity'; import { NestAuthUserAccessStatusEnum } from '@ackplus/nest-auth-contracts'; import { NestAuthTrustedDevice } from '../../auth/entities/trusted-device.entity'; type UserListScope = 'all' | 'platform' | 'tenant'; export declare class AdminUsersController { private readonly users; private readonly adminUserManagement; private readonly tenantService; private readonly authConfigService; private readonly mfaService; private readonly sessionManager; private readonly mfaSecretRepository; private readonly userAccessRepository; private readonly trustedDeviceRepository; private readonly platformAccessRepository; constructor(users: UserService, adminUserManagement: AdminUserManagementService, tenantService: TenantService, authConfigService: AuthConfigService, mfaService: MfaService, sessionManager: SessionManagerService, mfaSecretRepository: Repository, userAccessRepository: Repository, trustedDeviceRepository: Repository, platformAccessRepository: Repository); private ensureUserExists; private toSessionResponse; private buildStatusFilter; private escapeLikePattern; private resolveTenantIds; listUsers(page?: string, limit?: string, search?: string, status?: string, tenantId?: string, roleName?: string, scope?: string): Promise<{ data: { id: string; email: string; phone: string; userAccesses: { id: string; userId: string; tenantId: string; tenant: import("../../core").NestAuthTenant; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isDefault: boolean; status: NestAuthUserAccessStatusEnum; metadata: Record; createdAt: Date; updatedAt: Date; }[]; platformAccess: { id: string; userId: string; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isActive: boolean; createdAt: Date; updatedAt: Date; }; isPlatformUser: boolean; isActive: boolean; emailVerifiedAt: Date; phoneVerifiedAt: Date; metadata: Record; createdAt: Date; updatedAt: Date; isMfaEnabled: boolean; }[]; meta: { page: number; limit: number; total: number; totalPages: number; scope: UserListScope; }; }>; private assertPlatformAccessEnabled; private resolveScope; createUser(dto: AdminCreateUserDto): Promise<{ user: { id: string; email: string; phone: string; userAccesses: { id: string; userId: string; tenantId: string; tenant: import("../../core").NestAuthTenant; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isDefault: boolean; status: NestAuthUserAccessStatusEnum; metadata: Record; createdAt: Date; updatedAt: Date; }[]; platformAccess: { id: string; userId: string; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isActive: boolean; createdAt: Date; updatedAt: Date; }; isPlatformUser: boolean; isActive: boolean; emailVerifiedAt: Date; phoneVerifiedAt: Date; metadata: Record; createdAt: Date; updatedAt: Date; isMfaEnabled: boolean; }; }>; getUser(id: string): Promise<{ user: { id: string; email: string; phone: string; userAccesses: { id: string; userId: string; tenantId: string; tenant: import("../../core").NestAuthTenant; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isDefault: boolean; status: NestAuthUserAccessStatusEnum; metadata: Record; createdAt: Date; updatedAt: Date; }[]; platformAccess: { id: string; userId: string; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isActive: boolean; createdAt: Date; updatedAt: Date; }; isPlatformUser: boolean; isActive: boolean; emailVerifiedAt: Date; phoneVerifiedAt: Date; metadata: Record; createdAt: Date; updatedAt: Date; isMfaEnabled: boolean; }; identities: import("../../core").NestAuthIdentity[]; trustedDevices: NestAuthTrustedDevice[]; loginCapabilities: { email: { enabledInConfig: boolean; hasIdentity: boolean; verified: boolean; canPasswordLogin: boolean; canOtpLogin: boolean; }; phone: { enabledInConfig: boolean; hasIdentity: boolean; canPasswordLogin: boolean; verified: boolean; canOtpLogin: boolean; }; passwordless: { enabledInConfig: boolean; allowSignUp: boolean; }; social: { enabledProviders: string[]; identityProviders: string[]; }; mfa: { enabledInConfig: boolean; requiredForAll: boolean; requiredForUser: boolean; }; }; mfa: { isEnabled: boolean; allowUserToggle: boolean; availableMethods: import("@ackplus/nest-auth-contracts").NestAuthMFAMethodEnum[]; enabledMethods: import("@ackplus/nest-auth-contracts").NestAuthMFAMethodEnum[]; hasRecoveryCode: boolean; totpDevices: { id: string; deviceName: string; verified: boolean; lastUsedAt: Date; createdAt: Date; }[]; }; sessions: { id: string; userId: string; deviceName: string; userAgent: string; ipAddress: string; lastActive: Date; createdAt: Date; expiresAt: Date; }[]; }>; updateUser(id: string, dto: AdminUpdateUserDto): Promise<{ user: { id: string; email: string; phone: string; userAccesses: { id: string; userId: string; tenantId: string; tenant: import("../../core").NestAuthTenant; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isDefault: boolean; status: NestAuthUserAccessStatusEnum; metadata: Record; createdAt: Date; updatedAt: Date; }[]; platformAccess: { id: string; userId: string; roles: { id: string; name: string; guard: string; isSystem: boolean; isActive: boolean; tenantId: string; tenant: { id: string; name: string; slug: string; }; permissions: string[]; createdAt: Date; updatedAt: Date; }[]; isActive: boolean; createdAt: Date; updatedAt: Date; }; isPlatformUser: boolean; isActive: boolean; emailVerifiedAt: Date; phoneVerifiedAt: Date; metadata: Record; createdAt: Date; updatedAt: Date; isMfaEnabled: boolean; }; }>; deleteTotpDevice(id: string, deviceId: string): Promise<{ message: string; }>; listSessions(id: string): Promise<{ data: { id: string; userId: string; deviceName: string; userAgent: string; ipAddress: string; lastActive: Date; createdAt: Date; expiresAt: Date; }[]; }>; revokeSession(id: string, sessionId: string): Promise<{ message: string; }>; revokeAllSessions(id: string): Promise<{ message: string; }>; deleteUser(id: string): Promise<{ message: string; }>; private toSafeUser; } export {}; //# sourceMappingURL=admin-users.controller.d.ts.map