import { EventEmitter } from "events";
export interface CommentTrigger {
    pattern: string;
    regex: RegExp;
    action: "prompt" | "auto";
    priority: number;
}
export interface DetectedComment {
    file: string;
    line: number;
    column: number;
    trigger: string;
    content: string;
    fullLine: string;
    priority: number;
}
export interface CommentWatcherConfig {
    triggers: CommentTrigger[];
    ignoreDirs: string[];
    fileExtensions: string[];
    autoWatch: boolean;
}
/**
 * Comment Watcher - Detect and act on AI-directed comments
 * Looks for comments like: // AI: fix this bug
 */
export declare class CommentWatcher extends EventEmitter {
    private config;
    private projectRoot;
    private detectedComments;
    private vfs;
    constructor(projectRoot?: string, config?: Partial<CommentWatcherConfig>);
    /**
     * Add a custom trigger
     */
    addTrigger(pattern: string, regex: RegExp, action?: "prompt" | "auto", priority?: number): void;
    /**
     * Scan a single file for AI comments
     */
    scanFile(filePath: string): Promise<DetectedComment[]>;
    /**
     * Scan project for AI comments using ripgrep
     */
    scanProject(): Promise<DetectedComment[]>;
    /**
     * Manual scan fallback (slower but works without ripgrep)
     */
    private manualScan;
    /**
     * Get detected comments
     */
    getDetectedComments(): DetectedComment[];
    /**
     * Get comments grouped by file
     */
    getCommentsByFile(): Map<string, DetectedComment[]>;
    /**
     * Get high-priority comments
     */
    getHighPriorityComments(minPriority?: number): DetectedComment[];
    /**
     * Generate prompt for a comment
     */
    generatePromptForComment(comment: DetectedComment): string;
    /**
     * Mark comment as resolved (remove it from file)
     */
    resolveComment(comment: DetectedComment): Promise<boolean>;
    /**
     * Format detected comments for display
     */
    formatComments(): string;
    /**
     * Format as actionable list
     */
    formatActionableList(): string;
}
export declare function getCommentWatcher(projectRoot?: string): CommentWatcher;
export declare function resetCommentWatcher(): void;
