import type { ArgumentName, ContractName, DirectiveName, FieldName, InterfaceTypeName, SubgraphName, TypeName } from '../../../types/types'; import { type AuthorizationData, type EntityData, type EntityInterfaceFederationData, type InputObjectDefinitionData, type FederatedDirectivesData, type ObjectDefinitionData, type ParentDefinitionData } from '../../../schema-building/types/types'; import type { ConstDirectiveNode, InputValueDefinitionNode } from 'graphql'; import type { InternalSubgraph, Subgraph } from '../../../subgraph/types'; import type { ContractTagOptions } from '../../../federation/types/types'; import type { CompositionOptions } from '../../../types/params'; import type { Graph } from '../../../resolvability-graph/graph'; import type { Warning } from '../../../warnings/types'; import { type DirectiveArgumentData, type DirectiveDefinitionData } from '../../../directive-definition-data/types/types'; export type ValidateOneOfDirectiveParams = { data: InputObjectDefinitionData; inputValueNodes: Array; requiredFieldNames: Set; }; export type ExtractFederatedDirectivesParams = { data: FederatedDirectivesData; directivesByName: Map>; }; export type FederationParams = { subgraphs: Array; options?: CompositionOptions; }; export type FederateSubgraphsWithContractsV1Params = { subgraphs: Array; tagOptionsByContractName: Map; options?: CompositionOptions; }; export type FederateSubgraphsContractV1Params = { subgraphs: Array; contractTagOptions: ContractTagOptions; options?: CompositionOptions; }; export type FederationFactoryParams = { authorizationDataByParentTypeName: Map; concreteTypeNamesByAbstractTypeName: Map>; entityDataByTypeName: Map; entityInterfaceFederationDataByTypeName: Map; executableDirectiveDatasByName: Map>; federatedDirectiveDataByName: Map; fieldCoordsByNamedTypeName: Map>; interfaceImplementationTypeNamesByInterfaceTypeName: Map>; internalGraph: Graph; internalSubgraphBySubgraphName: Map; warnings: Array; options?: CompositionOptions; }; export type UpsertDirectiveArgumentDataParams = { argumentDataByName: Map; incomingData: DirectiveArgumentData; }; export type MergeSubscriptionFilterTargetResultParams = { directiveNode: ConstDirectiveNode; abstractTypeData: ParentDefinitionData; targets: Array; directiveSubgraphName: SubgraphName; }; export type ValidateSubscriptionFilterAndGenerateConfigurationParams = { directiveNode: ConstDirectiveNode; objectData: ObjectDefinitionData; fieldPath: string; fieldName: FieldName; parentTypeName: TypeName; directiveSubgraphName: SubgraphName; };