import { AnalysisResult, Output } from '../types';
export interface FormatterOptions {
    includeMetadata?: boolean;
    includeSourceReferences?: boolean;
    groupByCategory?: boolean;
    sortByPriority?: boolean;
}
export declare class OutputFormatter {
    private options;
    constructor(options?: FormatterOptions);
    formatAndSave(result: AnalysisResult, outputPath: string, format: 'json' | 'markdown'): Promise<void>;
    formatAsJSON(result: AnalysisResult): Output;
    formatAsMarkdown(result: AnalysisResult): Output;
    private formatRule;
    private sortRulesByPriority;
    private getPriorityEmoji;
    static validateOutputPath(outputPath: string): Promise<void>;
    static getOutputExtension(format: 'json' | 'markdown'): string;
    static generateDefaultOutputPath(directory: string, format: 'json' | 'markdown'): string;
    static fileExists(filePath: string): Promise<boolean>;
    static getFileStats(filePath: string): Promise<{
        size: number;
        created: Date;
        modified: Date;
    }>;
    protected formatHeader(result: AnalysisResult): string[];
    protected formatFooter(): string[];
}
//# sourceMappingURL=output-formatter.d.ts.map