import { DocumentNode, FieldNode, FragmentDefinitionNode, GraphQLAbstractType, GraphQLCompositeType, GraphQLField, GraphQLObjectType, GraphQLSchema, OperationDefinitionNode, SelectionSetNode, VariableDefinitionNode } from 'graphql'; import { FieldSet, Scope } from './FieldSet'; import { QueryPlan, OperationContext, FragmentMap } from './QueryPlan'; export interface BuildQueryPlanOptions { autoFragmentization: boolean; } export declare function buildQueryPlan(operationContext: OperationContext, options?: BuildQueryPlanOptions): QueryPlan; export declare function collectSubfields(context: QueryPlanningContext, returnType: GraphQLCompositeType, fields: FieldSet): FieldSet; export declare function buildOperationContext(schema: GraphQLSchema, document: DocumentNode, operationName?: string): OperationContext; export declare function buildQueryPlanningContext({ operation, schema, fragments }: OperationContext, options: BuildQueryPlanOptions): QueryPlanningContext; export declare class QueryPlanningContext { readonly schema: GraphQLSchema; readonly operation: OperationDefinitionNode; readonly fragments: FragmentMap; readonly autoFragmentization: boolean; internalFragments: Map; internalFragmentCount: number; protected variableDefinitions: { [name: string]: VariableDefinitionNode; }; constructor(schema: GraphQLSchema, operation: OperationDefinitionNode, fragments: FragmentMap, autoFragmentization: boolean); getFieldDef(parentType: GraphQLCompositeType, fieldNode: FieldNode): GraphQLField; getPossibleTypes(type: GraphQLAbstractType | GraphQLObjectType): ReadonlyArray; getVariableUsages(selectionSet: SelectionSetNode, fragments: Set): { [name: string]: VariableDefinitionNode; }; newScope(parentType: TParent, enclosingScope?: Scope): Scope; getBaseService(parentType: GraphQLObjectType): string | null; getOwningService(parentType: GraphQLObjectType, fieldDef: GraphQLField): string | null; getKeyFields({ parentType, serviceName, fetchAll, }: { parentType: GraphQLCompositeType; serviceName: string; fetchAll?: boolean; }): FieldSet; getRequiredFields(parentType: GraphQLCompositeType, fieldDef: GraphQLField, serviceName: string): FieldSet; getProvidedFields(fieldDef: GraphQLField, serviceName: string): FieldSet; } //# sourceMappingURL=buildQueryPlan.d.ts.map