import type { InsightRecord } from '../types/research.types.js';
import type { InsightRepository } from '../db/repositories/insight.repository.js';
import type { ErrorRepository } from '../db/repositories/error.repository.js';
import type { SynapseManager } from '../synapses/synapse-manager.js';
export interface InsightQuery {
    projectId?: number;
    type?: string;
    activeOnly?: boolean;
    limit?: number;
}
export interface TrendResult {
    errorType: string;
    count: number;
    direction: 'increasing' | 'decreasing' | 'stable';
    period: string;
}
export declare class ResearchService {
    private insightRepo;
    private errorRepo;
    private synapseManager;
    private logger;
    constructor(insightRepo: InsightRepository, errorRepo: ErrorRepository, synapseManager: SynapseManager);
    getInsights(query: InsightQuery): InsightRecord[];
    createInsight(data: {
        type: string;
        title: string;
        description: string;
        evidence?: string;
        priority?: number;
        projectId?: number;
        expiresInDays?: number;
    }): number;
    getTrends(projectId?: number, windowDays?: number): TrendResult[];
    expireOldInsights(): number;
    rateInsight(id: number, rating: number, comment?: string): boolean;
}
