import { DirectiveNode, GraphQLCompositeType, GraphQLObjectType } from "graphql";
import { QueryPlanningContext } from "./QueryPlanningContext";
export declare class Scope {
    private readonly context;
    readonly parentType: GraphQLCompositeType;
    readonly directives?: readonly DirectiveNode[] | undefined;
    readonly enclosing?: Scope | undefined;
    private cachedRuntimeTypes?;
    private cachedIdentityKey;
    private constructor();
    static create(context: QueryPlanningContext, parentType: GraphQLCompositeType): Scope;
    refine(type: GraphQLCompositeType, directives?: readonly DirectiveNode[]): Scope;
    private static pruneRefinedTypes;
    isStrictlyRefining(type: GraphQLCompositeType): boolean;
    private computePossibleRuntimeTypes;
    possibleRuntimeTypes(): readonly GraphQLObjectType[];
    private static valueIdentityKey;
    private static directiveIdentityKey;
    private static directivesIdentityKey;
    private computeIdentityKey;
    identityKey(): string;
    debugPrint(): string;
}
//# sourceMappingURL=Scope.d.ts.map