import { Repository } from 'typeorm';
import { ActivityAction, EntityType } from '../../common/enums';
import { ActivityLog } from '../../database/entities/activity-log.entity';
import { GroupMember } from '../../database/entities/group-member.entity';
import { PaginatedActivityDto } from './dto/activity-response.dto';
import { PaginationDto } from '../../common/dto/pagination.dto';
export interface LogActivityInput {
    actorId: string;
    action: ActivityAction;
    groupId?: string;
    targetUserId?: string;
    entityId?: string;
    entityType?: EntityType;
    metadata?: Record<string, unknown>;
}
export declare class ActivityService {
    private readonly activityLogRepo;
    private readonly groupMemberRepo;
    private readonly logger;
    constructor(activityLogRepo: Repository<ActivityLog>, groupMemberRepo: Repository<GroupMember>);
    log(input: LogActivityInput): Promise<void>;
    getGlobalFeed(userId: string, query: PaginationDto): Promise<PaginatedActivityDto>;
    getGroupFeed(groupId: string, query: PaginationDto): Promise<PaginatedActivityDto>;
    private paginate;
}
