import { GraphQLQuery } from "./types"; export interface DeadQueryResult { queryName: string; queryFile: string; queryLine: number; definedIn: string[]; importedIn: string[]; usedInMethods: MethodUsage[]; methodsCalled: boolean; deadReason: "never_imported" | "imported_but_unused" | "used_in_dead_methods"; } export interface MethodUsage { methodName: string; className?: string; file: string; line: number; isCalled: boolean; callSites: CallSite[]; } export interface CallSite { file: string; line: number; context: string; } export declare class CallGraphAnalyzer { private project; private importResolver; private queryToMethodMap; private methodCallGraph; private projectPath; constructor(); private findTsConfigPath; private findFilesRecursively; private initializeImportResolver; /** * Analisa quais queries GraphQL nunca são realmente executadas */ analyzeDeadQueries(queries: GraphQLQuery[], projectPath: string): Promise; /** * Mapeia quais métodos usam quais queries */ private buildQueryToMethodMapping; /** * Encontra imports de uma query específica (DEPRECATED - usar ImportResolver) * Mantido para compatibilidade, mas agora delega para ImportResolver */ private findQueryImports; /** * Encontra uso de query em métodos/funções */ private findQueryUsageInMethods; /** * Verifica se um método usa uma query específica */ private methodUsesQuery; /** * Constrói o call graph do projeto */ private buildMethodCallGraph; /** * Analisa chamadas de método em um arquivo */ private analyzeCallsInFile; /** * Processa uma expressão de chamada */ private processCallExpression; /** * Extrai o nome do objeto de uma PropertyAccessExpression */ private getObjectName; /** * Adiciona um call site ao call graph */ private addCallSite; /** * Identifica queries mortas baseado no call graph */ private identifyDeadQueries; /** * Gera relatório de queries mortas */ generateDeadQueriesReport(deadQueries: DeadQueryResult[]): string; private getDeadReasonDescription; } //# sourceMappingURL=callGraphAnalyzer.d.ts.map