import { type DirectiveDefinitionNode, type DocumentNode, type GraphQLSchema, type OperationTypeNode, type SchemaDefinitionNode, type SchemaExtensionNode } from 'graphql'; import { type ConfigurationData, type Costs } from '../router-configuration/types'; import { type ConditionalFieldData, type EntityInterfaceSubgraphData, type ParentDefinitionData } from '../schema-building/types/types'; import { type AbstractTypeName, type DirectiveName, type FieldName, type SubgraphName, type TypeName } from '../types/types'; import { type DirectiveDefinitionData } from '../directive-definition-data/types/types'; export type Subgraph = { definitions: DocumentNode; name: SubgraphName; url: string; }; export type SubgraphConfig = { configurationDataByTypeName: Map; directiveDefinitionByName: Map; isVersionTwo: boolean; parentDefinitionDataByTypeName: Map; schema: GraphQLSchema; costs?: Costs; schemaNode?: SchemaDefinitionNode | SchemaExtensionNode; }; export type InternalSubgraph = { conditionalFieldDataByCoords: Map; configurationDataByTypeName: Map; definitions: DocumentNode; directiveDefinitionByName: Map; entityInterfaceSubgraphDataByTypeName: Map; federatedDirectiveDataByName: Map; isVersionTwo: boolean; keyFieldNamesByParentTypeName: Map>; name: SubgraphName; operationTypes: Map; overriddenFieldNamesByParentTypeName: Map>; parentDefinitionDataByTypeName: Map; schema: GraphQLSchema; costs?: Costs; schemaNode?: SchemaDefinitionNode | SchemaExtensionNode; };