import { type Kind } from 'graphql'; import { type ArgumentName, type SubgraphName } from '../types/types'; export type RootTypeName = 'Mutation' | 'Query' | 'Subscription'; export type InvalidArgumentImplementation = { actualType: string; argumentName: string; expectedType: string; }; export type InvalidFieldImplementation = { implementedResponseType?: string; invalidAdditionalArguments: Set; invalidImplementedArguments: InvalidArgumentImplementation[]; isInaccessible: boolean; originalResponseType: string; unimplementedArguments: Set; }; export type ImplementationErrors = { invalidFieldImplementations: Map; unimplementedFields: string[]; }; export type GraphFieldData = { externalSubgraphNames: Set; name: string; namedTypeName: string; isLeaf: boolean; subgraphNames: Set; }; export type InvalidRequiredInputValueData = { inputValueName: string; missingSubgraphs: Array; requiredSubgraphs: Array; }; export type InvalidEntityInterface = { definedConcreteTypeNames: Set; requiredConcreteTypeNames: Set; subgraphName: string; }; export type InputNodeKind = Kind.ENUM_TYPE_DEFINITION | Kind.INPUT_OBJECT_TYPE_DEFINITION | Kind.SCALAR_TYPE_DEFINITION; export type OutputNodeKind = Kind.ENUM_TYPE_DEFINITION | Kind.INTERFACE_TYPE_DEFINITION | Kind.OBJECT_TYPE_DEFINITION | Kind.SCALAR_TYPE_DEFINITION | Kind.UNION_TYPE_DEFINITION;