import { BaseRepository } from './base-repository.js';
import 'drizzle-orm/pg-core';
import 'drizzle-orm';
import '../types/drizzle.js';
import 'drizzle-orm/node-postgres';

declare abstract class ActivityEntityRepository<TEntity> extends BaseRepository<TEntity> {
    /**
     * Find activities within a date range (inclusive).
     */
    findByDateRange(start: Date, end: Date): Promise<TEntity[]>;
    /**
     * Find all activities for a specific user.
     */
    findByUserId(userId: string): Promise<TEntity[]>;
    /**
     * Find all activities for a specific opportunity.
     */
    findByOpportunityId(opportunityId: string): Promise<TEntity[]>;
    /**
     * Find the most recent activities for an opportunity, ordered by occurredAt desc.
     */
    findRecentByOpportunityId(opportunityId: string, limit?: number): Promise<TEntity[]>;
}

export { ActivityEntityRepository };
