/** @category AST Utilities */ import type { ObjMap } from "../jsutils/ObjMap.js"; import type { DocumentNode } from "../language/ast.js"; /** * separateOperations accepts a single AST document which may contain many * operations and fragments and returns a collection of AST documents each of * which contains a single operation as well the fragment definitions it * refers to. * @param documentAST - The parsed GraphQL document AST. * @returns A map of operation names to documents containing each operation and its referenced fragments. * @example * ```ts * import { parse, print } from 'graphql/language'; * import { separateOperations } from 'graphql/utilities'; * * const document = parse(` * query GetUser { * viewer { * ...UserFields * } * } * * query GetStatus { * status * } * * fragment UserFields on User { * id * } * `); * * const separated = separateOperations(document); * * Object.keys(separated); // => ['GetUser', 'GetStatus'] * print(separated.GetUser); // matches /fragment UserFields/ * print(separated.GetStatus); // does not match /fragment UserFields/ * ``` */ export declare function separateOperations(documentAST: DocumentNode): ObjMap;