import { AuditService } from '../audit/audit.service';
import { AuthService } from '../auth/auth.service';
import { PrismaService } from '../prisma/prisma.service';
import type { AuthUserContext } from '../common/request-context';
type Meta = {
    ip?: string;
    userAgent?: string;
    correlationId?: string;
};
export declare class UsersService {
    private readonly prisma;
    private readonly audit;
    private readonly auth;
    constructor(prisma: PrismaService, audit: AuditService, auth: AuthService);
    private admin;
    private view;
    private target;
    private roles;
    /** Locks all active super-admin rows before testing the invariant. */
    private assertCanRemoveSuper;
    list(actor: AuthUserContext, input: {
        page: number;
        pageSize: number;
        q?: string;
        roleCode?: string;
        status?: string;
    }): Promise<{
        items: {
            id: any;
            username: any;
            fullName: any;
            email: any;
            isActive: any;
            isSuperAdmin: any;
            mustResetPassword: any;
            lastLoginAt: any;
            createdAt: any;
            roles: any;
        }[];
        page: number;
        pageSize: number;
        total: number;
        totalPages: number;
    }>;
    detail(actor: AuthUserContext, id: string): Promise<{
        allowPermissionCodes: string[];
        denyPermissionCodes: string[];
        effectivePermissions: string[];
        id: any;
        username: any;
        fullName: any;
        email: any;
        isActive: any;
        isSuperAdmin: any;
        mustResetPassword: any;
        lastLoginAt: any;
        createdAt: any;
        roles: any;
    }>;
    create(actor: AuthUserContext, dto: {
        username: string;
        fullName: string;
        email?: string;
        temporaryPassword: string;
        roleIds: string[];
        isActive: boolean;
    }, meta: Meta): Promise<{
        id: any;
        username: any;
        fullName: any;
        email: any;
        isActive: any;
        isSuperAdmin: any;
        mustResetPassword: any;
        lastLoginAt: any;
        createdAt: any;
        roles: any;
    }>;
    update(actor: AuthUserContext, id: string, dto: {
        fullName?: string;
        email?: string | null;
        roleIds?: string[];
    }, meta: Meta): Promise<{
        id: any;
        username: any;
        fullName: any;
        email: any;
        isActive: any;
        isSuperAdmin: any;
        mustResetPassword: any;
        lastLoginAt: any;
        createdAt: any;
        roles: any;
    }>;
    setActive(actor: AuthUserContext, id: string, active: boolean, meta: Meta): Promise<{
        ok: boolean;
    }>;
    resetPassword(actor: AuthUserContext, id: string, temporaryPassword: string, meta: Meta): Promise<{
        ok: boolean;
    }>;
    replaceOverrides(actor: AuthUserContext, id: string, dto: {
        allowPermissionCodes: string[];
        denyPermissionCodes: string[];
    }, meta: Meta, auditAction?: string): Promise<{
        ok: boolean;
    }>;
    clearOverrides(actor: AuthUserContext, id: string, meta: Meta): Promise<{
        ok: boolean;
    }>;
}
export {};
//# sourceMappingURL=users.service.d.ts.map