import type { ObjMap } from '../jsutils/ObjMap'; import type { FieldNode, FragmentDefinitionNode, SelectionSetNode, } from '../language/ast'; import type { GraphQLObjectType } from '../type/definition'; import type { GraphQLSchema } from '../type/schema'; /** * Given a selectionSet, collects all of the fields and returns them. * * CollectFields requires the "runtime type" of an object. For a field that * returns an Interface or Union type, the "runtime type" will be the actual * object type returned by that field. * * @internal */ export declare function collectFields( schema: GraphQLSchema, fragments: ObjMap, variableValues: { [variable: string]: unknown; }, runtimeType: GraphQLObjectType, selectionSet: SelectionSetNode, ): Map>; /** * Given an array of field nodes, collects all of the subfields of the passed * in fields, and returns them at the end. * * CollectSubFields requires the "return type" of an object. For a field that * returns an Interface or Union type, the "return type" will be the actual * object type returned by that field. * * @internal */ export declare function collectSubfields( schema: GraphQLSchema, fragments: ObjMap, variableValues: { [variable: string]: unknown; }, returnType: GraphQLObjectType, fieldNodes: ReadonlyArray, ): Map>;