import { DirectiveNode, GraphQLSchema, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, UnionTypeDefinitionNode, UnionTypeExtensionNode } from 'graphql'; import { ASTVisitFn } from '../gql16types'; import { ServiceDefinition } from './types'; export declare type DirectiveUsages = Map; declare type DirectiveUsagesPerField = Map; declare type DirectiveUsagesPerType = Map; declare type DirectiveUsagesPerSubgraph = Map; declare type ObjectInterfaceOrUnionTypeNode = ObjectTypeDefinitionNode | ObjectTypeExtensionNode | InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | UnionTypeDefinitionNode | UnionTypeExtensionNode; export declare class DirectiveMetadata { directiveUsagesPerSubgraph: DirectiveUsagesPerSubgraph; constructor(subgraphs: ServiceDefinition[]); getTypeVisitor(subgraphName: string): ASTVisitFn; hasUsages(directiveName: string): boolean; applyMetadataToSupergraphSchema(schema: GraphQLSchema): void; } export {}; //# sourceMappingURL=DirectiveMetadata.d.ts.map