import type { Ocorrencia } from '../index.js';
export type FormatterFormato = 'json' | 'markdown' | 'html' | 'pdf' | 'custom';
export interface DadosFormatacao {
    metadata: {
        timestamp: string;
        schemaVersion: string;
        modo: string;
        flags: string[];
        tutanusVersion?: string;
        projectNome?: string;
    };
    stats: {
        arquivosAnalisados: number;
        arquivosComProblemas: number;
        totalOcorrencias: number;
        porNivel: {
            erro: number;
            aviso: number;
            info: number;
        };
        porCategoria: Record<string, number>;
        tempoExecucao?: number;
    };
    ocorrencias: Ocorrencia[];
    linguagens?: {
        total: number;
        extensoes: Record<string, number>;
    };
    sugestoes?: string[];
}
export interface FormatterOpcoes {
    formato: FormatterFormato;
    titulo?: string;
    subtitulo?: string;
    compacto?: boolean;
    maxOcorrencias?: number;
}
export interface Formatter {
    readonly nome: string;
    readonly descricao: string;
    readonly formato: FormatterFormato | string;
    readonly versao?: string;
    gerar(dados: DadosFormatacao, opcoes?: Partial<FormatterOpcoes>): string | Promise<string>;
    extensoes?: string[];
}
//# sourceMappingURL=formatters.d.ts.map