import { OperationDefinitionNode, GraphQLSchema } from 'graphql'; import { QueryTreeHandler, QueryNodePurgeHandler } from './query-tree-handler'; import { QueryTreeNode } from './query-tree-node'; import { Query } from './query'; import * as rgraphql from 'rgraphql'; export declare class QueryTree { private schema; private nextID; private nextQueryID; private attachedQueries; private root; private varStore; private pendingVariables; private handlers; private qtNodePurgeHandlers; constructor(schema: GraphQLSchema, handler?: QueryTreeHandler); getGraphQLSchema(): GraphQLSchema; getRoot(): QueryTreeNode; buildQuery(ast: OperationDefinitionNode, variables?: { [key: string]: any; } | null): Query; attach(query: Query): void; detach(query: Query): void; attachHandler(handler: QueryTreeHandler): void; removeHandler(handler: QueryTreeHandler): void; attachQtNodePurgeHandler(handler: QueryNodePurgeHandler): void; detachQtNodePurgeHandler(handler: QueryNodePurgeHandler): void; buildProto(): rgraphql.RGQLQueryTreeNode; gcSweep(): void; private emitToHandlers; private emitToPurgeHandlers; private handleNewVariable; }