import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { AiUsageOsPlatform, Prisma } from '@prisma/client';
export declare class AiUsageDeviceService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(filter: {
        organizationId: string;
        status?: 'all' | 'active' | 'blocked';
        q?: string;
        platform?: AiUsageOsPlatform;
        skip?: number;
        take?: number;
    }): Promise<{
        items: ({
            user: {
                displayName: string;
                id: string;
                email: string;
            };
        } & {
            id: string;
            createdAt: Date;
            userId: string;
            deviceId: string;
            updatedAt: Date;
            organizationId: string;
            createdById: string;
            hostname: string;
            osUser: string | null;
            osPlatform: import("@prisma/client").$Enums.AiUsageOsPlatform;
            agentVersion: string | null;
            firstSeenAt: Date;
            firstSeenIp: string | null;
            lastSeenAt: Date;
            blockedAt: Date | null;
            blockedById: string | null;
            blockedReason: string | null;
        })[];
        total: number;
    }>;
    block(params: {
        deviceId: string;
        organizationId: string;
        adminId: string;
        reason: string;
    }): Promise<{
        id: string;
        createdAt: Date;
        userId: string;
        deviceId: string;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        hostname: string;
        osUser: string | null;
        osPlatform: import("@prisma/client").$Enums.AiUsageOsPlatform;
        agentVersion: string | null;
        firstSeenAt: Date;
        firstSeenIp: string | null;
        lastSeenAt: Date;
        blockedAt: Date | null;
        blockedById: string | null;
        blockedReason: string | null;
    }>;
    unblock(params: {
        deviceId: string;
        organizationId: string;
    }): Promise<{
        id: string;
        createdAt: Date;
        userId: string;
        deviceId: string;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        hostname: string;
        osUser: string | null;
        osPlatform: import("@prisma/client").$Enums.AiUsageOsPlatform;
        agentVersion: string | null;
        firstSeenAt: Date;
        firstSeenIp: string | null;
        lastSeenAt: Date;
        blockedAt: Date | null;
        blockedById: string | null;
        blockedReason: string | null;
    }>;
    listDlq(filter: {
        organizationId: string;
        reason?: string;
        skip?: number;
        take?: number;
    }): Promise<{
        items: {
            id: string;
            createdAt: Date;
            deviceId: string | null;
            updatedAt: Date;
            organizationId: string;
            createdById: string;
            reason: import("@prisma/client").$Enums.AiUsageDlqReason;
            rawPayload: Prisma.JsonValue;
        }[];
        total: number;
    }>;
}
