export interface GraphQLField { name: string; alias?: string; actualName: string; path: string[]; line: number; column: number; } export interface GraphQLQuery { name: string; fields: GraphQLField[]; rawQuery: string; location: { file: string; line: number; column: number; }; } export interface FieldUsage { field: GraphQLField; usages: Array<{ file: string; line: number; column: number; context: string; }>; } export interface UnusedField { field: GraphQLField; query: GraphQLQuery; estimatedSavings?: { sizeReduction: string; percentage: number; }; } export interface LintResult { unusedFields: UnusedField[]; totalQueriesAnalyzed: number; totalFieldsAnalyzed: number; deadQueries?: DeadQueryInfo[]; estimatedTotalSavings?: { sizeReduction: string; percentage: number; }; } export interface LintOptions { include?: string[]; exclude?: string[]; estimateSavings?: boolean; ignorePatterns?: string[]; maxFiles?: number; srcOnly?: boolean; fast?: boolean; deepScan?: boolean; schemaFile?: string; enableSchemaValidation?: boolean; verbose?: boolean; analyzeDeadQueries?: boolean; } export interface GraphQLSchemaField { name: string; type: string; isRequired: boolean; description?: string; } export interface GraphQLSchemaType { name: string; fields: GraphQLSchemaField[]; kind: "OBJECT" | "INPUT" | "ENUM" | "SCALAR"; } export interface DataFlowNode { identifier: string; file: string; line: number; column: number; type: "query_result" | "variable" | "prop" | "state" | "store_access" | "function_call"; sourceQuery?: string; fields?: string[]; } export interface DataFlowGraph { nodes: Map; connections: Map; } export interface AdvancedFieldUsage extends FieldUsage { dataFlow?: DataFlowNode[]; indirectUsages?: Array<{ file: string; line: number; column: number; context: string; accessPath: string[]; confidence: number; }>; } export interface CrossFileAnalysisContext { allFiles: Map; queryDefinitions: Map; importGraph: Map; exportGraph: Map; functionToQuery: Map; variableToQuery: Map; } export interface DeadQueryInfo { queryName: string; queryFile: string; queryLine: number; deadReason: "never_imported" | "imported_but_unused" | "used_in_dead_methods"; methodsUsingQuery: MethodInfo[]; totalFieldsInQuery: number; } export interface MethodInfo { methodName: string; className?: string; file: string; line: number; isCalled: boolean; callCount: number; } //# sourceMappingURL=types.d.ts.map