export const DetectorJsTsMensagens = {
    tipoAnyComUtilidade: (varNome, _tipo) => `Uso de utilitário de tipo com 'any' em '${varNome}' mascara perda de type safety`,
    tipoAnyComUtilidadeSugestao: (tipo) => `Substitua por: ${tipo.replace('any', 'TipoEspecifico')}`,
    anyCatchBlock: (varNome) => varNome ? `'any' em catch block '${varNome}' - TypeScript recomenda 'unknown'` : "'any' em catch block - TypeScript recomenda 'unknown'",
    anyCatchBlockSugestao: "Substitua por: catch (error: unknown) { ... }",
    callbackAny: (varNome) => varNome ? `Callback '${varNome}' com parâmetro 'any' - tipagem fraca` : "Callback com parâmetro 'any' - tipagem fraca",
    callbackAnySugestao: 'Defina interface do callback: (param: TipoEspecifico) => void',
    eventHandlerAny: (varNome) => varNome ? `Event handler '${varNome}' com 'any' - pode usar Event types` : "Event handler com 'any' - pode usar Event types",
    eventHandlerAnySugestao: 'Use tipos do DOM: MouseEvent, KeyboardEvent, etc ou React.SyntheticEvent<T>',
    indexSignatureAny: 'Índice extensível com any - muito permissivo',
    indexSignatureAnySugestao: 'Use: [key: string]: unknown (mais seguro) ou defina union type',
    recordAny: (varNome) => varNome ? `Record com 'any' em '${varNome}' - sem type safety` : "Record com 'any' - sem type safety",
    recordAnySugestao: 'Use Record<string, unknown> ou interface específica',
    arrayAny: (varNome) => varNome ? `Array de 'any' em '${varNome}' - perde tipagem` : "Array de 'any' - perde tipagem",
    arrayAnySugestao: 'Especifique tipo do array: string[], number[], CustomType[], etc',
    tipoAnyGenerico: (varNome) => varNome ? `Tipo 'any' em '${varNome}' desabilita verificação de tipos` : "Tipo 'any' desabilita verificação de tipos",
    tipoAnyGenericoSugestao: 'Analise uso da variável e defina tipo específico ou use unknown com type guards',
    contextoAdicionalTipos: ' | [AVISO]  Arquivo de tipos - impacta toda base de código',
    contextoAdicionalCore: ' | [AVISO]  Módulo core/shared - usado por muitos componentes',
    revisaoManual: ' | [BUSCA] Revisão manual obrigatória',
    tipoPermissivo: (tipo) => `Tipo '${tipo}' é muito permissivo e pouco útil para type safety`,
    tipoObjectSugestao: 'Use Record<string, unknown> ou interface específica',
    tipoVazioSugestao: 'Use Record<string, never> para objetos vazios ou interface específica',
    typeAssertionAny: "Type assertion 'as any' desabilita verificação de tipos completamente",
    assertionCastFuncaoSugestao: 'Evite cast de retorno de função - tipar função corretamente ou usar unknown com type guard',
    assertionCastPropriedadeSugestao: 'Evite cast de propriedade - definir tipo correto no objeto pai',
    assertionCastParametroSugestao: 'Type assertion em parâmetro - definir tipo correto na assinatura da função chamada',
    assertionCastGenericoSugestao: 'Substitua por tipo específico ou use unknown com validação runtime',
    assertionCritico: ' | [ALERT] CRÍTICO: Type safety completamente desabilitado',
    angleBracketCast: "Type casting '<any>' (sintaxe legada) desabilita type safety | [IDEIA] Use sintaxe 'as' moderna e tipo específico | [ALERT] CRÍTICO: Migrar para sintaxe moderna e tipo correto",
    unknownLegitimo: (varNome, motivo) => varNome ? `Tipo 'unknown' em '${varNome}': ${motivo}` : `Tipo 'unknown': ${motivo}`,
    unknownMelhoravel: (varNome, confianca) => varNome ? `Tipo 'unknown' em '${varNome}' pode ser melhorado (${confianca}% confiança)` : `Tipo 'unknown' pode ser melhorado (${confianca}% confiança)`,
    unknownCorrigir: (varNome, confianca) => varNome ? `Tipo 'unknown' em '${varNome}' deve ser corrigido (${confianca}% confiança)` : `Tipo 'unknown' deve ser corrigido (${confianca}% confiança)`,
    unknownRevisaoManual: ' | [AVISO]  Revisão manual recomendada',
    unknownRevisaoObrigatoria: ' | [BUSCA] Revisão manual obrigatória',
    floatingPromise: (funcName) => `Chamada possivelmente assíncrona '${funcName}' não aguardada (floating promise). Adicione 'await' ou trate com '.catch()'.`,
    asyncInForEach: (propName) => `Uso de 'async' dentro de '${propName}' não aguarda execução. Prefira iterar com 'for...of'.`,
    asyncInMap: (_propName) => `Uso de 'async' dentro de 'map'. Certifique-se de envelopar e aguardar com 'Promise.all(...)'.`,
    setIntervalUnassigned: 'Chamada para setInterval sem guardar a referência. Isso pode levar a um vazamento de memória e processamento.',
    windowSetIntervalUnassigned: 'Chamada para window.setInterval sem guardar a referência (memory leak).',
    globalListenerNoCleanup: "Adição de evento global 'addEventListener' detectada em componente React, porém 'removeEventListener' não foi encontrado. Isso causará memory leaks no unmount.",
};
//# sourceMappingURL=detector-js-ts-messages.js.map