import { type ConstDirectiveNode, type ConstValueNode, type DocumentNode, type Kind, type NamedTypeNode, type OperationTypeDefinitionNode, type OperationTypeNode, type StringValueNode } from 'graphql'; import { type MutableEnumNode, type MutableEnumValueNode, type MutableFieldNode, type MutableInputObjectNode, type MutableInputValueNode, type MutableInterfaceNode, type MutableObjectNode, type MutableScalarNode, type MutableTypeNode, type MutableUnionNode } from '../ast'; import { type FieldSetConditionData } from '../../router-configuration/types'; import { type KeyFieldSetData } from '../../v1/normalization/types/types'; import { type InputNodeKind, type OutputNodeKind } from '../../utils/types'; import { type ArgumentName, type DirectiveName, type FieldName, type SubgraphName, type TypeName } from '../../types/types'; import { type DirectiveArgumentData, type DirectiveDefinitionData } from '../../directive-definition-data/types/types'; export type ConfigureDescriptionData = { propagate: boolean; description: string; }; export declare enum ExtensionType { EXTENDS = 0, NONE = 1, REAL = 2 } export type EnumDefinitionData = { appearances: number; configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; enumValueDataByName: Map; extensionType: ExtensionType; isInaccessible: boolean; kind: Kind.ENUM_TYPE_DEFINITION; name: string; node: MutableEnumNode; federatedDirectivesData: FederatedDirectivesData; subgraphNames: Set; description?: StringValueNode; }; export type EnumValueData = { appearances: number; configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; federatedCoords: string; kind: Kind.ENUM_VALUE_DEFINITION; name: string; node: MutableEnumValueNode; parentTypeName: TypeName; federatedDirectivesData: FederatedDirectivesData; subgraphNames: Set; description?: StringValueNode; }; export type ExternalFieldData = { isDefinedExternal: boolean; isUnconditionallyProvided: boolean; }; export type FieldData = { argumentDataByName: Map; configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; externalFieldDataBySubgraphName: Map; federatedCoords: string; inheritedDirectiveNames: Set; isInaccessible: boolean; isShareableBySubgraphName: Map; kind: Kind.FIELD_DEFINITION; name: FieldName; namedTypeKind: OutputNodeKind | Kind.NULL; namedTypeName: TypeName; node: MutableFieldNode; nullLevelsBySubgraphName: Map>; originalParentTypeName: TypeName; federatedDirectivesData: FederatedDirectivesData; renamedParentTypeName: TypeName; subgraphNames: Set; type: MutableTypeNode; description?: StringValueNode; }; export type InputObjectDefinitionData = { configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; extensionType: ExtensionType; inputValueDataByName: Map; isInaccessible: boolean; kind: Kind.INPUT_OBJECT_TYPE_DEFINITION; name: TypeName; node: MutableInputObjectNode; federatedDirectivesData: FederatedDirectivesData; subgraphNames: Set; description?: StringValueNode; }; export type InputValueData = { configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; federatedCoords: string; includeDefaultValue: boolean; isArgument: boolean; kind: Kind.ARGUMENT | Kind.INPUT_VALUE_DEFINITION; name: FieldName; namedTypeKind: InputNodeKind | Kind.NULL; namedTypeName: TypeName; node: MutableInputValueNode; originalCoords: string; originalParentTypeName: TypeName; federatedDirectivesData: FederatedDirectivesData; renamedParentTypeName: TypeName; requiredSubgraphNames: Set; subgraphNames: Set; type: MutableTypeNode; defaultValue?: ConstValueNode; description?: StringValueNode; fieldName?: FieldName; }; export type InterfaceDefinitionData = { configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; extensionType: ExtensionType; fieldDataByName: Map; implementedInterfaceTypeNames: Set; isEntity: boolean; isInaccessible: boolean; kind: Kind.INTERFACE_TYPE_DEFINITION; name: TypeName; node: MutableInterfaceNode; federatedDirectivesData: FederatedDirectivesData; requireFetchReasonsFieldNames: Set; subgraphNames: Set; description?: StringValueNode; }; export type ObjectDefinitionData = { configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; extensionType: ExtensionType; fieldDataByName: Map; implementedInterfaceTypeNames: Set; isEntity: boolean; isInaccessible: boolean; isRootType: boolean; kind: Kind.OBJECT_TYPE_DEFINITION; name: TypeName; node: MutableObjectNode; federatedDirectivesData: FederatedDirectivesData; renamedTypeName: TypeName; requireFetchReasonsFieldNames: Set; subgraphNames: Set; description?: StringValueNode; }; export type FederatedDirectivesData = { deprecatedReason: string; directivesByName: Map>; isDeprecated: boolean; tagDirectiveByName: Map; }; export type ScalarDefinitionData = { configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; extensionType: ExtensionType; kind: Kind.SCALAR_TYPE_DEFINITION; name: TypeName; node: MutableScalarNode; federatedDirectivesData: FederatedDirectivesData; subgraphNames: Set; description?: StringValueNode; }; export type SchemaData = { directivesByName: Map>; kind: Kind.SCHEMA_DEFINITION; name: string; operationTypes: Map; description?: StringValueNode; }; export type UnionDefinitionData = { configureDescriptionDataBySubgraphName: Map; directivesByName: Map>; extensionType: ExtensionType; kind: Kind.UNION_TYPE_DEFINITION; name: TypeName; memberByMemberTypeName: Map; node: MutableUnionNode; federatedDirectivesData: FederatedDirectivesData; subgraphNames: Set; description?: StringValueNode; }; export type ParentDefinitionData = EnumDefinitionData | InputObjectDefinitionData | InterfaceDefinitionData | ObjectDefinitionData | ScalarDefinitionData | UnionDefinitionData; export type ChildData = EnumValueData | FieldData | InputValueData; export type CompositeOutputData = InterfaceDefinitionData | ObjectDefinitionData; export type DefinitionData = DirectiveArgumentData | DirectiveDefinitionData | EnumDefinitionData | EnumValueData | FieldData | InputObjectDefinitionData | InputValueData | InterfaceDefinitionData | ObjectDefinitionData | ScalarDefinitionData | UnionDefinitionData; export type NodeData = ChildData | ParentDefinitionData | DirectiveArgumentData; export type EntityData = { documentNodeByKeyFieldSet: Map; keyFieldSets: Set; keyFieldSetDatasBySubgraphName: Map>; subgraphNames: Set; typeName: TypeName; }; export type SimpleFieldData = { name: FieldName; namedTypeName: TypeName; }; export type EntityInterfaceSubgraphData = { concreteTypeNames: Set; fieldDatas: Array; interfaceFieldNames: Set; interfaceObjectFieldNames: Set; isInterfaceObject: boolean; resolvable: boolean; typeName: TypeName; }; export type FieldAuthorizationData = { fieldName: FieldName; inheritedData: InheritedAuthorizationData; originalData: OriginalAuthorizationData; }; export type InheritedAuthorizationData = { requiredScopes: Array>; requiredScopesByOR: Array>; requiresAuthentication: boolean; }; export type OriginalAuthorizationData = { requiredScopes: Array>; requiresAuthentication: boolean; }; export type AuthorizationData = { fieldAuthDataByFieldName: Map; requiredScopes: Array>; requiredScopesByOR: Array>; requiresAuthentication: boolean; typeName: TypeName; }; export type ConditionalFieldData = { providedBy: Array; requiredBy: Array; }; export type EntityInterfaceFederationData = { concreteTypeNames: Set; fieldDatasBySubgraphName: Map>; interfaceFieldNames: Set; interfaceObjectFieldNames: Set; interfaceObjectSubgraphNames: Set; subgraphDataByTypeName: Map; typeName: TypeName; }; export type MutableParentDefinitionNode = MutableEnumNode | MutableInputObjectNode | MutableInterfaceNode | MutableObjectNode | MutableScalarNode | MutableUnionNode;