import { type ArgumentName, type Directive, type DirectiveLocation, type DirectiveName, type SubgraphName } from '../../types/types'; import { type ConfigureDescriptionData } from '../../schema-building/types/types'; import { type ConstDirectiveNode, type ConstValueNode, type DirectiveDefinitionNode, type InputValueDefinitionNode, type Kind, type StringValueNode } from 'graphql/'; import { type InputNodeKind } from '../../utils/types'; import type { MutableInputValueNode, MutableTypeNode } from '../../schema-building/ast'; import { type DirectiveArgumentData, type DirectiveDefinitionData } from './types'; export type UpsertFederatedDirectiveDataParams = { executableDirectiveDatasByName: Map>; existingDataByName: Map; incomingDataByName: Map; }; export type AddDirectiveArgumentDataByNodeParams = { directiveName: DirectiveName; node: InputValueDefinitionNode; optionalArgumentNames: Set; requiredArgumentNames: Set; }; export type DirectiveArgumentDataParams = { directive: Directive; name: ArgumentName; namedTypeKind: InputNodeKind | Kind.NULL; typeNode: MutableTypeNode; configureDescriptionDataBySubgraphName?: Map; directivesByName?: Map>; defaultValue?: ConstValueNode; description?: StringValueNode; node?: MutableInputValueNode; requiredSubgraphNames?: Set; subgraphNames?: Set; }; export type DirectiveDefinitionDataParams = { locations: Set; name: DirectiveName; node: DirectiveDefinitionNode; argumentDataByName?: Map; description?: StringValueNode; isComposed?: boolean; isReferenced?: boolean; isRepeatable?: boolean; optionalArgumentNames?: Set; requiredArgumentNames?: Set; subgraphNames?: Set; }; export type ExtractDirectiveArgumentDataParams = { directiveName: DirectiveName; errorMessages: Array; argumentNodes?: ReadonlyArray | Array; };