import { PrismaService } from "../../../core/database/prisma/prisma.service";
export interface RecentlyVisitedItem {
    id: string;
    type: 'document' | 'article';
    title: string;
    webUrl?: string;
    lastViewedAt: Date;
    editedAt?: Date;
    docType?: string;
}
export interface ActivityItem {
    id: string;
    type: 'comment' | 'mention' | 'like';
    actorId: string;
    actorName: string;
    targetType: 'document' | 'article';
    targetId: string;
    targetTitle: string;
    content?: string;
    createdAt: Date;
    isRead?: boolean;
}
export interface AnalyticsData {
    createdArticles: {
        draft: number;
        published: number;
    };
    views: number;
    reads: number;
    likes: number;
    dislikes: number;
}
export declare class ActivityService {
    private readonly prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    getRecentlyVisited(userId: string, limit?: number): Promise<RecentlyVisitedItem[]>;
    recordView(userId: string, targetType: 'document' | 'article', targetId: string): Promise<void>;
    getActivityFeed(userId: string, options?: {
        filter?: 'all' | 'mentions' | 'comments';
        limit?: number;
    }): Promise<ActivityItem[]>;
    markMentionAsRead(mentionId: string, userId: string): Promise<void>;
    getUserAnalytics(userId: string): Promise<AnalyticsData>;
    getUnreadMentionCount(userId: string): Promise<number>;
}
