import { type GraphQLCompositeType, type GraphQLInterfaceType, type GraphQLSchema } from 'graphql'; /** Used by `expandFragments` to calculate type relations. Can be created by using {@linkcode createTypeRelationContext}. */ export interface TypeRelationContext { readonly doesOverlap: (typeA: GraphQLCompositeType, typeB: GraphQLCompositeType) => boolean; readonly interfaceImplements: (parentType: GraphQLInterfaceType, conditionType: GraphQLInterfaceType) => boolean; } /** * Creates {@linkcode TypeRelationContext} instance for calculating type relations. * This instance should always returns same result for same `schema`, so you can re-use * if `schema` is unchanged. */ export default function createTypeRelationContext(schema: GraphQLSchema): TypeRelationContext;