import * as rgraphql from 'rgraphql'; export interface IVariableReference { id: number; name: string; varb: Variable; clone(): IVariableReference | undefined; unsubscribe(): void; } export declare class Variable { id: number; name: string; value: any; removed: boolean; private referenceCounter; private references; constructor(id: number, name: string, value: any); toProto(): rgraphql.ASTVariable; get hasReferences(): boolean; addReference(): IVariableReference; } export type AddVariableCallback = (varb: Variable) => void; export declare class VariableStore { private cb; private variableIdCounter; private variableNameCounter; private variables; constructor(cb: AddVariableCallback | null); getVariable(value: any): IVariableReference; getVariableByName(name: string): IVariableReference | null; forEach(cb: (vb: Variable) => void): void; garbageCollect(): void; }