interface ExecutionResult { errors?: Array; data?: TData | null; } interface ArgMap { [arg: string]: [keyType, string] | [keyType] | undefined; } type CompressedField = [ type: keyType, args?: ArgMap ]; interface CompressedFieldMap { [field: string]: CompressedField | undefined; } type CompressedType = CompressedFieldMap; interface CompressedTypeMap { scalars: Array; types: { [type: string]: CompressedType | undefined; }; } type Field = { type: keyType; args?: ArgMap; }; interface FieldMap { [field: string]: Field | undefined; } type Type = FieldMap; interface TypeMap { scalars: Array; types: { [type: string]: Type | undefined; }; } interface LinkedArgMap { [arg: string]: [LinkedType, string] | undefined; } interface LinkedField { type: LinkedType; args?: LinkedArgMap; } interface LinkedFieldMap { [field: string]: LinkedField | undefined; } interface LinkedType { name: string; fields?: LinkedFieldMap; scalar?: string[]; } interface LinkedTypeMap { [type: string]: LinkedType | undefined; } export type { ArgMap, CompressedField, CompressedFieldMap, CompressedType, CompressedTypeMap, ExecutionResult, Field, FieldMap, LinkedArgMap, LinkedField, LinkedFieldMap, LinkedType, LinkedTypeMap, Type, TypeMap };