import { type StringValueNode, type TypeNode } from 'graphql'; import { type DirectiveName, type InterfaceTypeName, type TypeName } from '../../types/types'; import { type EnumValueData, type FieldData, type InputValueData, type NodeData, type ParentDefinitionData } from './types'; import type { MutableInputValueNode } from '../ast'; import { type DirectiveArgumentData, type DirectiveDefinitionData } from '../../directive-definition-data/types/types'; export type IsTypeValidImplementationParams = { concreteTypeNamesByAbstractTypeName: Map>; implementationType: TypeNode; interfaceImplementationTypeNamesByInterfaceTypeName: Map>; originalType: TypeNode; }; export type GetRouterFederatedDirectiveNodesParams = { data: NodeData; federatedDirectiveDataByName: Map; parentDefinitionDataByTypeName: Map; }; export type GetValidArgumentNodesParams = { data: DirectiveDefinitionData; federatedDirectiveDataByName: Map; parentDefinitionDataByTypeName: Map; }; export type DirectiveDefinitionNodeFromDataParams = { data: DirectiveDefinitionData; federatedDirectiveDataByName: Map; parentDefinitionDataByTypeName: Map; }; export type SanitizeDefaultValueParams = { data: DirectiveArgumentData | InputValueData; namedTypeData: ParentDefinitionData; node?: MutableInputValueNode; }; export type RouterSchemaFieldNodeFromDataParams = { argumentNodes: Array; data: FieldData; federatedDirectiveDataByName: Map; parentDefinitionDataByTypeName: Map; description?: StringValueNode; }; export type RouterSchemaInputValueNodeFromDataParams = { data: DirectiveArgumentData | InputValueData; federatedDirectiveDataByName: Map; parentDefinitionDataByTypeName: Map; description?: StringValueNode; }; export type RouterSchemaNodeFromDataParams = { data: EnumValueData | ParentDefinitionData; federatedDirectiveDataByName: Map; parentDefinitionDataByTypeName: Map; description?: StringValueNode; }; export type CompareAndValidateInputDefaultValuesParams = { existingData: DirectiveArgumentData | InputValueData; incomingData: DirectiveArgumentData | InputValueData; };