import { ASTNode, DocumentNode, GraphQLSchema } from 'graphql';
import { Change } from '@graphql-inspector/core';
import { PatchConfig, SchemaNode } from './types.cjs';
export * as errors from './errors.cjs';
/**
 * Wraps converting a schema to AST safely, patching, then rebuilding the schema from AST.
 * The schema is not validated in this function. That it is the responsibility of the caller.
 */
export declare function patchSchema(schema: GraphQLSchema, changes: Change<any>[], config?: Partial<PatchConfig>): GraphQLSchema;
/**
 * Extracts all the root definitions from a DocumentNode and creates a mapping of their coordinate
 * to the defined ASTNode. E.g. A field's coordinate is "Type.field".
 */
export declare function groupByCoordinateAST(ast: DocumentNode): [SchemaNode[], Map<string, ASTNode>];
export declare function patchCoordinatesAST(schemaNodes: SchemaNode[], nodesByCoordinate: Map<string, ASTNode>, changes: Change<any>[], patchConfig?: Partial<PatchConfig>): DocumentNode;
/** This method wraps groupByCoordinateAST and patchCoordinatesAST for convenience. */
export declare function patch(ast: DocumentNode, changes: Change<any>[], patchConfig?: Partial<PatchConfig>): DocumentNode;
