import type { EventBus } from './EventBus.js';
import type { SuggestionStore, CreateSuggestionInput } from './SuggestionStore.js';
export type AnalysisTrigger = 'file_changed' | 'session_start' | 'build_complete' | 'scheduled' | 'manual';
export interface AnalysisContext {
    trigger: AnalysisTrigger;
    filePath?: string;
    fileContent?: string;
    projectRoot?: string;
}
export interface Suggestion {
    type: CreateSuggestionInput['type'];
    title: string;
    description: string;
    priority: number;
    evidence: Record<string, unknown>;
    suggestedAction?: string;
    riskLevel?: string;
}
export interface AnalysisModule {
    readonly name: string;
    analyze(context: AnalysisContext): Promise<Suggestion[]>;
    shouldRun(trigger: AnalysisTrigger): boolean;
}
export declare class SecurityScanner implements AnalysisModule {
    readonly name = "SecurityScanner";
    shouldRun(trigger: AnalysisTrigger): boolean;
    analyze(context: AnalysisContext): Promise<Suggestion[]>;
}
export declare class PerformanceDetector implements AnalysisModule {
    readonly name = "PerformanceDetector";
    shouldRun(trigger: AnalysisTrigger): boolean;
    analyze(context: AnalysisContext): Promise<Suggestion[]>;
}
export declare class QualityChecker implements AnalysisModule {
    readonly name = "QualityChecker";
    shouldRun(trigger: AnalysisTrigger): boolean;
    analyze(context: AnalysisContext): Promise<Suggestion[]>;
}
export declare class DependencyMonitor implements AnalysisModule {
    readonly name = "DependencyMonitor";
    shouldRun(trigger: AnalysisTrigger): boolean;
    analyze(context: AnalysisContext): Promise<Suggestion[]>;
}
export declare class ProactiveAnalyzer {
    private readonly modules;
    private readonly store;
    private readonly eventBus;
    private readonly debounceTimers;
    constructor(deps: {
        store: SuggestionStore;
        eventBus: EventBus;
        modules?: AnalysisModule[];
    });
    analyze(context: AnalysisContext): Promise<Suggestion[]>;
    getModules(): ReadonlyArray<AnalysisModule>;
    clearDebounce(): void;
    private analyzeDebounced;
    private runAnalysis;
    private emitSuggestionCreated;
}
//# sourceMappingURL=ProactiveAnalyzer.d.ts.map