import { GraphQLQuery, SchemaValidationResult } from "./types"; export declare class HasuraSchemaAnalyzer { private schema; /** * Carrega e analisa o schema do Hasura */ loadSchema(schemaFilePath: string): Promise; /** * Valida queries contra o schema */ validateQueriesAgainstSchema(queries: GraphQLQuery[]): SchemaValidationResult; /** * Analisa compatibilidade das queries com o schema */ analyzeSchemaCompatibility(queries: GraphQLQuery[]): { compatibleQueries: GraphQLQuery[]; incompatibleQueries: Array<{ query: GraphQLQuery; issues: string[]; }>; schemaUsage: { totalTypes: number; usedTypes: number; totalFields: number; usedFields: number; }; }; /** * Obtém sugestões de otimização baseadas no schema */ getOptimizationSuggestions(queries: GraphQLQuery[]): Array<{ query: GraphQLQuery; suggestions: Array<{ type: 'remove_field' | 'add_field' | 'change_type'; field: string; reason: string; impact: 'high' | 'medium' | 'low'; }>; }>; private parseHasuraSchema; private parseOperationFields; private parseTypeFields; private validateField; private getOperationType; private operationExistsInSchema; private getReturnType; private getFieldSchemaInfo; private getEssentialFields; private findUnusedSchemaFields; private getTotalFieldCount; /** * Gera relatório de cobertura do schema */ generateSchemaCoverageReport(queries: GraphQLQuery[]): { totalOperations: number; usedOperations: number; totalFields: number; usedFields: number; coveragePercentage: number; unusedOperations: string[]; }; } //# sourceMappingURL=hasuraSchemaAnalyzer.d.ts.map