import type { GraphQLSchema, OperationDefinitionNode } from "graphql";
import { OperationPlan } from "./index.ts";
import type { BaseGraphQLRootValue, BaseGraphQLVariables, ErrorBehavior, Fragments } from "./interfaces.ts";
import type { GrafastOperationOptions } from "./prepare.ts";
/**
 * Implements the `EstablishOpPlan` algorithm.
 *
 * @remarks Though EstablishOpPlan accepts document and operationName, we
 * instead accept operation and fragments since they're easier to get a hold of
 * in GraphQL.js.
 */
export declare function establishOperationPlan<TVariables extends BaseGraphQLVariables = BaseGraphQLVariables, TContext extends Grafast.Context = Grafast.Context, TRootValue extends BaseGraphQLRootValue = BaseGraphQLRootValue>(schema: GraphQLSchema, operation: OperationDefinitionNode, fragments: Fragments, variableValues: TVariables, context: TContext, rootValue: TRootValue, onError: ErrorBehavior, options: GrafastOperationOptions): OperationPlan;
//# sourceMappingURL=establishOperationPlan.d.ts.map