import { PrismaService } from "../../../core/database/prisma/prisma.service";
export declare class AiUsageTokenService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    create(params: {
        userId: string;
        organizationId: string;
        name: string;
    }): Promise<{
        id: string;
        name: string;
        prefix: string;
        token: string;
        createdAt: Date;
    }>;
    listForUser(userId: string): Promise<{
        id: string;
        createdAt: Date;
        name: string;
        revokedAt: Date | null;
        prefix: string;
        lastUsedAt: Date | null;
        lastUsedIp: string | null;
    }[]>;
    revoke(params: {
        tokenId: string;
        userId: string;
        isAdmin: boolean;
        revokedById: string;
        organizationId?: string;
    }): Promise<{
        id: string;
        createdAt: Date;
        userId: string;
        name: string;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        revokedAt: Date | null;
        prefix: string;
        tokenHash: string;
        lastUsedAt: Date | null;
        lastUsedIp: string | null;
        revokedById: string | null;
    }>;
    validate(rawToken: string, ip?: string): Promise<{
        id: string;
        userId: string;
        organizationId: string;
    } | null>;
    listAll(filter: {
        organizationId: string;
        userId?: string;
        status?: 'all' | 'active' | 'revoked';
        skip?: number;
        take?: number;
    }): Promise<{
        items: ({
            user: {
                displayName: string;
                id: string;
                email: string;
            };
        } & {
            id: string;
            createdAt: Date;
            userId: string;
            name: string;
            updatedAt: Date;
            organizationId: string;
            createdById: string;
            revokedAt: Date | null;
            prefix: string;
            tokenHash: string;
            lastUsedAt: Date | null;
            lastUsedIp: string | null;
            revokedById: string | null;
        })[];
        total: number;
    }>;
}
