import { ICONES_ACAO, ICONES_STATUS, ICONES_ZELADOR as ICONES_ZELADOR_CENTRAL } from '../../shared/icons.js';
const ICONES_ZELADOR = {
    ...ICONES_ZELADOR_CENTRAL
};
export const MENSAGENS_IMPORTS = {
    titulo: `${ICONES_ACAO.correcao} Import Caretaker - Starting fixes...`,
    resumo: `${ICONES_ZELADOR.resumo} Summary:`,
    dryRunAviso: `${ICONES_ZELADOR.dryRun} Dry-run mode: no files were modified`,
    sucessoFinal: `${ICONES_STATUS.ok} Fixes applied successfully!`
};
export const PROGRESSO_IMPORTS = {
    diretorioNaoEncontrado: (dir) => `${ICONES_ZELADOR.aviso} Directory not found: ${dir}`,
    arquivoProcessado: (arquivo, count) => `${ICONES_ZELADOR.sucesso} ${arquivo} (${count} fix${count !== 1 ? 'es' : ''})`,
    arquivoErro: (arquivo, erro) => `${ICONES_ZELADOR.erro} ${arquivo}: ${erro}`,
    lendoDiretorio: (dir) => `Reading directory: ${dir}`
};
export const ERROS_IMPORTS = {
    lerDiretorio: (dir, error) => {
        const mensagem = error instanceof Error ? error.message : String(error);
        return `Error reading directory ${dir}: ${mensagem}`;
    },
    processar: (arquivo, error) => {
        const mensagem = error instanceof Error ? error.message : String(error);
        return `Error processing ${arquivo}: ${mensagem}`;
    }
};
export function formatarEstatistica(label, valor, icone) {
    const prefixo = icone ? `${icone} ` : '   ';
    return `${prefixo}${label}: ${valor}`;
}
export function gerarResumoImports(stats) {
    const linhas = ['', MENSAGENS_IMPORTS.resumo, formatarEstatistica('Processed files', stats.processados), formatarEstatistica('Modified files', stats.modificados), formatarEstatistica('Total fixes', stats.totalCorrecoes)];
    if (stats.erros > 0) {
        linhas.push(formatarEstatistica('Errors', stats.erros, ICONES_ZELADOR.aviso));
    }
    linhas.push('');
    if (stats.dryRun) {
        linhas.push(MENSAGENS_IMPORTS.dryRunAviso);
    }
    else {
        linhas.push(MENSAGENS_IMPORTS.sucessoFinal);
    }
    return linhas;
}
export const MENSAGENS_IMPORTS_SCAN = {
    titulo: `${ICONES_ACAO.correcao} Import Caretaker - Scanning barrels...`,
    buscandoBarrels: 'Scanning for barrels (index.ts) in project...',
    barrelsEncontrados: (count) => `${count} barrel${count !== 1 ? 's' : ''} found`,
    analisandoTsconfig: 'Analyzing tsconfig.json...',
    pathsAtuais: (count) => `${count} current path${count !== 1 ? 's' : ''} in tsconfig`,
    planoAlias: 'Proposed aliases plan:',
    aliasAtual: 'Current alias',
    aliasProposto: 'Proposed alias',
    aliasNovo: 'New alias',
    aliasRemovido: 'Removed alias',
    manterAlias: 'Kept alias',
    confirmarAtualizacao: 'Update tsconfig.json with the new aliases?',
    tsconfigAtualizado: 'tsconfig.json updated successfully!',
    tsconfigNaoModificado: 'tsconfig.json was not modified.',
    aliasesLimpos: (count) => `${count} clean alias${count !== 1 ? '' : 'es'} configured`
};
export const MENSAGENS_IMPORTS_APPLY = {
    titulo: `${ICONES_ACAO.correcao} Import Caretaker - Applying aliases...`,
    lendoTsconfig: 'Reading aliases from tsconfig.json...',
    varrendoArquivos: 'Scanning project files...',
    reescrevendoImports: 'Rewriting imports...',
    arquivosProcessados: (count) => `${count} file${count !== 1 ? 's' : ''} processed`,
    arquivosModificados: (count) => `${count} file${count !== 1 ? 's' : ''} modified`,
    importsReescritos: (count) => `${count} import${count !== 1 ? 's' : ''} rewritten`,
    aplicacaoConcluida: 'Aliases applied successfully!',
    errosEncontrados: (count) => `${count} error${count !== 1 ? 's' : ''} found`,
    nenhumImportParaReescrever: 'No imports needed to be rewritten.'
};
export const MENSAGENS_TIPOS = {
    titulo: `${ICONES_ACAO.correcao} Type Caretaker - Starting fixes...`,
    analisandoTipo: (tipo) => `Analyzing type: ${tipo}`,
    tipoCorrigido: (antes, depois) => `Fixed: ${antes} → ${depois}`
};
export const MENSAGENS_ESTRUTURA = {
    titulo: `${ICONES_ACAO.organizacao} Structure Caretaker - Reorganizing files...`,
    movendo: (origem, destino) => `Moving: ${origem} → ${destino}`,
    criandoDiretorio: (dir) => `Creating directory: ${dir}`
};
export const MENSAGENS_ZELADOR_GERAL = {
    iniciando: (zelador) => `${ICONES_ZELADOR.inicio} ${zelador} - Starting...`,
    concluido: (zelador) => `${ICONES_ZELADOR.sucesso} ${zelador} - Completed!`,
    erro: (zelador, mensagem) => `${ICONES_ZELADOR.erro} ${zelador} - Error: ${mensagem}`
};
export const MODELOS_SAIDA = {
    compacto: {
        inicio: (nome) => `${ICONES_ZELADOR.inicio} ${nome}`,
        progresso: (atual, total) => `[${atual}/${total}]`,
        fim: (sucesso) => sucesso ? ICONES_ZELADOR.sucesso : ICONES_ZELADOR.erro
    },
    detalhado: {
        inicio: (nome, descricao) => `${ICONES_ZELADOR.inicio} ${nome}\n   ${descricao}`,
        progresso: (arquivo, atual, total) => `   [${atual}/${total}] ${arquivo}`,
        fim: (stats) => `\n${ICONES_ZELADOR.resumo} Success: ${stats.sucesso}, Failure: ${stats.falha}`
    }
};
export const SAIDA_CODIGOS = {
    SUCESSO: 0,
    ERRO_GERAL: 1,
    ERRO_ARQUIVO: 2,
    ERRO_PERMISSAO: 3,
    CANCELADO_USUARIO: 4
};
export function formatarListaArquivos(arquivos, maxExibir = 10) {
    const linhas = [];
    const mostrar = arquivos.slice(0, maxExibir);
    for (const arquivo of mostrar) {
        linhas.push(`   ${ICONES_ZELADOR.arquivo} ${arquivo}`);
    }
    const restantes = arquivos.length - maxExibir;
    if (restantes > 0) {
        linhas.push(`   ... and ${restantes} more file${restantes !== 1 ? 's' : ''}`);
    }
    return linhas;
}
export function formatarDuracao(ms) {
    if (ms < 1000) {
        return `${ms}ms`;
    }
    if (ms < 60000) {
        return `${(ms / 1000).toFixed(1)}s`;
    }
    const minutos = Math.floor(ms / 60000);
    const segundos = Math.floor(ms % 60000 / 1000);
    return `${minutos}m ${segundos}s`;
}
export function formatarComTimestamp(mensagem) {
    const timestamp = new Date().toISOString().substring(11, 19);
    return `[${timestamp}] ${mensagem}`;
}
//# sourceMappingURL=caretaker-messages.js.map