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} インポートゼラドー - 修正を開始...`,
    resumo: `${ICONES_ZELADOR.resumo} 概要:`,
    dryRunAviso: `${ICONES_ZELADOR.dryRun} dry-runモード: ファイルは変更されていません`,
    sucessoFinal: `${ICONES_STATUS.ok} 修正が正常に適用されました!`
};
export const PROGRESSO_IMPORTS = {
    diretorioNaoEncontrado: (dir) => `${ICONES_ZELADOR.aviso} ディレクトリが見つかりません: ${dir}`,
    arquivoProcessado: (arquivo, count) => `${ICONES_ZELADOR.sucesso} ${arquivo}(${count}件の修正)`,
    arquivoErro: (arquivo, erro) => `${ICONES_ZELADOR.erro} ${arquivo}: ${erro}`,
    lendoDiretorio: (dir) => `ディレクトリを読み込み中: ${dir}`
};
export const ERROS_IMPORTS = {
    lerDiretorio: (dir, error) => {
        const mensagem = error instanceof Error ? error.message : String(error);
        return `ディレクトリ${dir}の読み込みエラー: ${mensagem}`;
    },
    processar: (arquivo, error) => {
        const mensagem = error instanceof Error ? error.message : String(error);
        return `${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('処理されたファイル', stats.processados), formatarEstatistica('変更されたファイル', stats.modificados), formatarEstatistica('修正の総数', stats.totalCorrecoes)];
    if (stats.erros > 0) {
        linhas.push(formatarEstatistica('エラー', 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} インポートゼラドー - バレルをスキャン中...`,
    buscandoBarrels: 'プロジェクト内のバレル(index.ts)をスキャン中...',
    barrelsEncontrados: (count) => `${count}個のバレルが見つかりました`,
    analisandoTsconfig: 'tsconfig.jsonを分析中...',
    pathsAtuais: (count) => `tsconfigに${count}個の現在のパス`,
    planoAlias: '提案されたエイリアスプラン:',
    aliasAtual: '現在のエイリアス',
    aliasProposto: '提案されたエイリアス',
    aliasNovo: '新しいエイリアス',
    aliasRemovido: '削除されたエイリアス',
    manterAlias: '保持されたエイリアス',
    confirmarAtualizacao: 'tsconfig.jsonを新しいエイリアスで更新しますか?',
    tsconfigAtualizado: 'tsconfig.jsonが正常に更新されました!',
    tsconfigNaoModificado: 'tsconfig.jsonは変更されていません。',
    aliasesLimpos: (count) => `${count}個のクリーンエイリアスが設定されました`
};
export const MENSAGENS_IMPORTS_APPLY = {
    titulo: `${ICONES_ACAO.correcao} インポートゼラドー - エイリアスを適用中...`,
    lendoTsconfig: 'tsconfig.jsonからエイリアスを読み込み中...',
    varrendoArquivos: 'プロジェクトファイルをスキャン中...',
    reescrevendoImports: 'インポートを書き換え中...',
    arquivosProcessados: (count) => `${count}個のファイルを処理`,
    arquivosModificados: (count) => `${count}個のファイルを変更`,
    importsReescritos: (count) => `${count}個のインポートを書き換え`,
    aplicacaoConcluida: 'エイリアスが正常に適用されました!',
    errosEncontrados: (count) => `${count}個のエラーが見つかりました`,
    nenhumImportParaReescrever: '書き換えが必要なインポートはありませんでした。'
};
export const MENSAGENS_TIPOS = {
    titulo: `${ICONES_ACAO.correcao} 型ゼラドー - 修正を開始...`,
    analisandoTipo: (tipo) => `型を分析中: ${tipo}`,
    tipoCorrigido: (antes, depois) => `修正済み: ${antes} → ${depois}`
};
export const MENSAGENS_ESTRUTURA = {
    titulo: `${ICONES_ACAO.organizacao} 構造ゼラドー - ファイルを再編成...`,
    movendo: (origem, destino) => `移動: ${origem} → ${destino}`,
    criandoDiretorio: (dir) => `ディレクトリを作成中: ${dir}`
};
export const MENSAGENS_ZELADOR_GERAL = {
    iniciando: (zelador) => `${ICONES_ZELADOR.inicio} ${zelador} - 開始...`,
    concluido: (zelador) => `${ICONES_ZELADOR.sucesso} ${zelador} - 完了!`,
    erro: (zelador, mensagem) => `${ICONES_ZELADOR.erro} ${zelador} - エラー: ${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} 成功: ${stats.sucesso}、失敗: ${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(`   ...他 ${restantes}件のファイル`);
    }
    return linhas;
}
export function formatarDuracao(ms) {
    if (ms < 1000) {
        return `${ms}ms`;
    }
    if (ms < 60000) {
        return `${(ms / 1000).toFixed(1)}秒`;
    }
    const minutos = Math.floor(ms / 60000);
    const segundos = Math.floor(ms % 60000 / 1000);
    return `${minutos}分${segundos}秒`;
}
export function formatarComTimestamp(mensagem) {
    const timestamp = new Date().toISOString().substring(11, 19);
    return `[${timestamp}] ${mensagem}`;
}
//# sourceMappingURL=caretaker-messages.js.map