import { type ConstDirectiveNode, type DirectiveNode, type DocumentNode } from "graphql"; type TagExtractionStrategy = (directiveNode: DirectiveNode) => string | null; declare function createTransformTagDirectives(tagDirectiveName: string, inaccessibleDirectiveName: string): (node: { directives?: readonly ConstDirectiveNode[]; }, includeInaccessibleDirective?: boolean) => readonly ConstDirectiveNode[]; type SchemaCoordinateToTagsRegistry = Map>; export declare function buildSchemaCoordinateTagRegister(documentNodes: Array): SchemaCoordinateToTagsRegistry; export declare function applyTagFilterToInaccessibleTransformOnSubgraphSchema(documentNode: DocumentNode, tagRegister: SchemaCoordinateToTagsRegistry, filter: SchemaContractFilter): { typeDefs: DocumentNode; typesWithAllFieldsInaccessible: Map; transformTagDirectives: ReturnType; typesWithInaccessibleApplied: Set; }; export declare function applyTagFilterOnSubgraphs(subgraphs: Array, filter: SchemaContractFilter): Array; export declare function createTagDirectiveNameExtractionStrategy(directiveName: string): TagExtractionStrategy; export type SchemaContractFilter = { include: Set; exclude: Set; }; export {}; //# sourceMappingURL=tag-extraction.d.ts.map