import { PrismaService } from "../../core/database/prisma/prisma.service";
import { AuthCacheService } from "../../modules/organization/auth/services/auth-cache.service";
import { IamAuditService } from './iam-audit.service';
export declare class AccessReviewService {
    private readonly prisma;
    private readonly authCache;
    private readonly audit;
    private readonly logger;
    constructor(prisma: PrismaService, authCache: AuthCacheService, audit: IamAuditService);
    listPending(reviewPeriodDays?: number): Promise<({
        user: {
            displayName: string;
            id: string;
            username: string;
        };
        role: {
            code: string;
            id: string;
            name: string;
        };
    } & {
        id: string;
        createdAt: Date;
        userId: string;
        organizationId: string | null;
        roleId: string;
        lastReviewedAt: Date | null;
        lastReviewedBy: string | null;
        reviewComment: string | null;
    })[]>;
    approve(userRoleId: string, reviewer: string, comment?: string): Promise<{
        id: string;
        createdAt: Date;
        userId: string;
        organizationId: string | null;
        roleId: string;
        lastReviewedAt: Date | null;
        lastReviewedBy: string | null;
        reviewComment: string | null;
    }>;
    revoke(userRoleId: string, reviewer: string, comment?: string): Promise<void>;
    scanAndAlert(): Promise<({
        user: {
            displayName: string;
            id: string;
            username: string;
        };
        role: {
            code: string;
            id: string;
            name: string;
        };
    } & {
        id: string;
        createdAt: Date;
        userId: string;
        organizationId: string | null;
        roleId: string;
        lastReviewedAt: Date | null;
        lastReviewedBy: string | null;
        reviewComment: string | null;
    })[]>;
}
