import { ICONES_ACAO, ICONES_ARQUIVO, ICONES_COMANDO, ICONES_DIAGNOSTICO, ICONES_FEEDBACK, ICONES_RELATORIO, ICONES_STATUS, ICONES_TIPOS } from '../../shared/icons.js';
export const CATEGORIAS_TIPOS = {
    LEGITIMO: {
        icone: ICONES_TIPOS.legitimo,
        nome: 'LEGITIMATE',
        descricao: 'Correct use of unknown - no action required',
        confidenciaMin: 100
    },
    MELHORAVEL: {
        icone: ICONES_TIPOS.melhoravel,
        nome: 'IMPROVABLE',
        descricao: 'Could be more specific - manual review recommended',
        confidenciaMin: 70
    },
    CORRIGIR: {
        icone: ICONES_TIPOS.corrigir,
        nome: 'FIX',
        descricao: 'Must be replaced - automatic fix possible',
        confidenciaMin: 95
    }
};
const MENSAGENS_INICIO = {
    titulo: `${ICONES_COMANDO.fixTypes} Starting unsafe type analysis...`,
    analisando: (target) => `${ICONES_ARQUIVO.diretorio} Analyzing: ${target}`,
    confianciaMin: (min) => `${ICONES_DIAGNOSTICO.stats} Minimum confidence: ${min}%`,
    modo: (dryRun) => `${dryRun ? ICONES_ACAO.analise : ICONES_ACAO.correcao} Mode: ${dryRun ? 'Analysis (dry-run)' : 'Apply fixes'}`
};
const MENSAGENS_PROGRESSO = {
    processandoArquivos: (count) => `${ICONES_ARQUIVO.diretorio} Processing ${count} files...`,
    arquivoAtual: (arquivo, count) => `${ICONES_ARQUIVO.arquivo} ${arquivo}: ${count} occurrence${count !== 1 ? 's' : ''}`
};
export const MENSAGENS_RESUMO = {
    encontrados: (count) => `Found ${count} unsafe types:`,
    tituloCategorizacao: `${ICONES_DIAGNOSTICO.stats} Categorization Analysis:`,
    confianciaMedia: (media) => `${ICONES_DIAGNOSTICO.stats} Average confidence: ${media}%`,
    porcentagem: (count, total) => {
        const pct = total > 0 ? Math.round(count / total * 100) : 0;
        return `${count} case${count !== 1 ? 's' : ''} (${pct}%)`;
    }
};
export const DICAS = {
    removerDryRun: '[TIP] To apply fixes, remove the --dry-run flag',
    usarInterativo: '[TIP] Use --interactive to confirm each fix',
    ajustarConfianca: (atual) => `${ICONES_FEEDBACK.dica} Use --confidence <num> to adjust the threshold (current: ${atual}%)`,
    revisar: (categoria) => `${ICONES_FEEDBACK.dica} Review ${categoria} cases manually`
};
export const ACOES_SUGERIDAS = {
    LEGITIMO: ['These cases are correct and should be kept as is', 'Do not require any additional action'],
    MELHORAVEL: ['Consider replacing with more specific types when possible', 'Review during future refactorings', 'Add comments explaining the use of unknown'],
    CORRIGIR: ['Prioritize fixing these cases', 'Replace with specific TypeScript types', 'Use type guards when necessary']
};
const MENSAGENS_ERRO = {
    correcaoNaoImplementada: 'Complete automatic fix not yet implemented',
    sistemaDesenvolvimento: `${ICONES_FEEDBACK.foguete} Advanced automatic fix system under development`,
    requisitoAnalise: 'Requires AST analysis and type inference to be safe',
    detectorNaoEncontrado: 'Unsafe type detector not found in analyst registry',
    modulosNaoEncontrados: 'Fix modules not found'
};
export const MENSAGENS_SUCESSO = {
    nenhumTipoInseguro: `${ICONES_STATUS.ok} No unsafe types detected! Code has good type safety.`,
    nenhumAltaConfianca: `${ICONES_STATUS.ok} No high-confidence fixes found`,
    nenhumaCorrecao: 'No fixes applied (use --confidence to adjust threshold)'
};
export const MENSAGENS_CLI_CORRECAO_TIPOS = {
    linhaEmBranco: '',
    erroExecutar: (mensagem) => `Error running fix-types: ${mensagem}`,
    linhaResumoTipo: (texto) => `  ${texto}`,
    exemplosDryRunTitulo: `${ICONES_RELATORIO.lista} Examples found (dry-run):`,
    exemploLinha: (icone, relPath, linha) => `  ${icone} ${relPath}:${linha}`,
    exemploMensagem: (mensagem) => `     └─ ${mensagem}`,
    debugVariavel: (nome) => `     └─ Variable: ${nome}`,
    maisOcorrencias: (qtd) => `  ... and ${qtd} more occurrences`,
    aplicandoCorrecoesAuto: `${ICONES_ACAO.correcao} Applying automatic fixes...`,
    exportandoRelatorios: `${ICONES_ACAO.export} Exporting reports...`,
    verboseAnyDetectado: (arquivo, linha) => `  ${ICONES_TIPOS.any} ${arquivo}:${linha} - any detected (fix recommended)`,
    verboseAsAnyCritico: (arquivo, linha) => `  ${ICONES_TIPOS.corrigir} ${arquivo}:${linha} - "as any" detected (CRITICAL - fix required)`,
    verboseAngleAnyCritico: (arquivo, linha) => `  ${ICONES_TIPOS.corrigir} ${arquivo}:${linha} - "<any>" detected (CRITICAL - legacy syntax)`,
    verboseUnknownCategoria: (icone, arquivo, linha, categoria, confianca) => `  ${icone} ${arquivo}:${linha} - ${categoria} (${confianca}%)`,
    verboseMotivo: (motivo) => `     └─ ${motivo}`,
    verboseSugestao: (sugestao) => `     └─ ${ICONES_FEEDBACK.dica} ${sugestao}`,
    verboseVariantesTitulo: `     └─ ${ICONES_DIAGNOSTICO.stats} Alternative possibilities:`,
    verboseVarianteItem: (idxBase1, variante) => `        ${idxBase1}. ${variante}`,
    analiseDetalhadaSalva: `${ICONES_ARQUIVO.arquivo} Detailed analysis saved at: .tutanus/fix-types-analise.json`,
    altaConfiancaTitulo: (qtd) => `${ICONES_DIAGNOSTICO.stats} ${qtd} high-confidence fixes (≥85%):`,
    altaConfiancaLinha: (relPath, linha, confianca) => `  ${ICONES_TIPOS.corrigir} ${relPath}:${linha} (${confianca}%)`,
    altaConfiancaDetalhe: (texto) => `     └─ ${texto}`,
    altaConfiancaMais: (qtd) => `  ... and ${qtd} more fixes`,
    incertosTitulo: (qtd) => `${ICONES_FEEDBACK.pergunta} ${qtd} cases with uncertain analysis (<70% confidence):`,
    incertosIntro: '   These cases require careful manual review - multiple possibilities detected',
    incertosLinha: (relPath, linha, confianca) => `  ${ICONES_TIPOS.melhoravel} ${relPath}:${linha} (${confianca}%)`,
    incertosMais: (qtd) => `  ... and ${qtd} more uncertain cases (see .tutanus/fix-types-analise.json)`,
    correcoesResumoSucesso: (qtd) => `${ICONES_STATUS.ok} ${qtd} file(s) fixed`,
    correcoesResumoLinhaOk: (arquivo, linhas) => `   Logging  ${arquivo}: ${linhas} line(s) modified`,
    correcoesResumoLinhaErro: (arquivo, erro) => `   ${ICONES_STATUS.falha} ${arquivo}: ${erro}`,
    correcoesResumoFalhas: (qtd) => `${ICONES_STATUS.falha} ${qtd} file(s) with error`,
    dryRunAviso: (iconeInicio) => `${iconeInicio} Dry-run mode active - no changes will be made`,
    templatePasso: (passo) => `  ${passo}`
};
export const TEXTOS_CATEGORIZACAO_CORRECAO_TIPOS = {
    anyMotivo: 'any is unsafe - replace with specific type',
    anySugestao: 'Analyze variable usage to infer correct type',
    asAnyMotivo: 'Type assertion "as any" completely disables type safety',
    asAnySugestao: 'CRITICAL: Replace with specific type or use unknown with runtime validation',
    angleAnyMotivo: 'Legacy type casting <any> disables type safety',
    angleAnySugestao: 'CRITICAL: Migrate to modern "as" syntax and use specific type',
    semContextoMotivo: 'Could not analyze context',
    semContextoSugestao: 'Review manually'
};
export const TEMPLATE_RESUMO_FINAL = {
    titulo: `${ICONES_RELATORIO.detalhado} To apply fixes manually:`,
    passos: ['Review the categorized cases above', `LEGITIMATE (${ICONES_TIPOS.legitimo}): Keep as is`, `IMPROVABLE (${ICONES_TIPOS.melhoravel}): Consider more specific types`, `FIX (${ICONES_TIPOS.corrigir}): Replace with specific types`, 'Run `npm run lint` after fixes']
};
const ICONES = {
    inicio: ICONES_COMANDO.fixTypes,
    aplicando: '[>]',
    analise: '[>]',
    pasta: '[DIR]',
    arquivo: '[FILE]',
    alvo: '[>]',
    edicao: '[EDIT]',
    grafico: '[GRAPH]',
    lampada: '[TIP]',
    foguete: '[>>]',
    nota: '[NOTE]',
    checkbox: '[OK]',
    setinha: '└─',
    ...CATEGORIAS_TIPOS
};
export const ICONES_FIX_TYPES = ICONES;
export const MENSAGENS_ERRO_FIX_TYPES = MENSAGENS_ERRO;
export const MENSAGENS_INICIO_FIX_TYPES = MENSAGENS_INICIO;
export const MENSAGENS_PROGRESSO_FIX_TYPES = MENSAGENS_PROGRESSO;
export const MENSAGENS_SUCESSO_FIX_TYPES = MENSAGENS_SUCESSO;
export function formatarTipoInseguro(tipo, count) {
    const icone = tipo.includes('any') ? ICONES_TIPOS.any : ICONES_TIPOS.unknown;
    const plural = count !== 1 ? 's' : '';
    return `${icone} ${tipo}: ${count} occurrence${plural}`;
}
export function formatarOcorrencia(relPath, linha) {
    return `  ${ICONES.setinha} ${relPath}:${linha || '?'}`;
}
export function formatarComContexto(mensagem, indentLevel = 1) {
    const indent = '  '.repeat(indentLevel);
    return `${indent}${ICONES.setinha} ${mensagem}`;
}
export function formatarSugestao(sugestao) {
    return `     ${ICONES.setinha} ${ICONES.lampada} ${sugestao}`;
}
export function gerarResumoCategoria(categoria, count, total) {
    const config = CATEGORIAS_TIPOS[categoria];
    const porcentagem = MENSAGENS_RESUMO.porcentagem(count, total);
    return [categoria === 'CORRIGIR' ? `${config.icone} ${config.nome}: ${porcentagem}` : categoria === 'MELHORAVEL' ? `${config.icone} ${config.nome}: ${porcentagem}` : `${config.icone} ${config.nome}: ${porcentagem}`, `   ${ICONES.setinha} ${config.descricao}`];
}
export const DEPURACAO = {
    categorizacao: (arquivo, tipo, categoria) => `[DEBUG] ${arquivo} - ${tipo} → ${categoria}`,
    confianca: (tipo, valor) => `[DEBUG] Confidence for ${tipo}: ${valor}%`
};
//# sourceMappingURL=fix-types-messages.js.map