import { FieldNode } from 'graphql';
import { Subschema } from './Subschema.js';
import { ExternalObject } from './types.js';
export type Deferred<T = unknown> = PromiseWithResolvers<T>;
export declare function createDeferred<T>(): Deferred<T>;
export interface DelegationPlanLeftOver {
    unproxiableFieldNodes: Array<FieldNode>;
    nonProxiableSubschemas: Array<Subschema>;
    missingFieldsParentMap: Map<ExternalObject, Array<FieldNode>>;
    missingFieldsParentDeferredMap: Map<ExternalObject, Map<string, Deferred>>;
}
export declare const leftOverByDelegationPlan: WeakMap<Map<Subschema<any, any, any, Record<string, any>>, import("graphql").SelectionSetNode>[], DelegationPlanLeftOver>;
export declare const PLAN_LEFT_OVER: unique symbol;
export declare function getPlanLeftOverFromParent(parent: unknown): DelegationPlanLeftOver | undefined;
