import Tuple from './Tuple'; import Stream from './Stream'; import IDSource from './utils/IDSource'; import GraphListener, { GraphListenerMount } from './GraphListenerV3'; import TuplePatternMatcher from './tuple/TuplePatternMatcher'; import TableListener from './TableListener'; import TableMount from './TableMount'; import SavedQuery from './SavedQuery'; import LiveQuery from './LiveQuery'; interface GraphOptions { context?: 'browser' | 'node'; autoinitMemoryTables?: boolean; } export default class Graph { options: GraphOptions; nextUniquePerAttr: { [typeName: string]: IDSource; }; tables: Map; tablePatternMap: TuplePatternMatcher; listeners: GraphListenerMount[]; eagerValueIds: IDSource; graphListenerIds: IDSource; nextListenerId: IDSource; nextWatchId: IDSource; nextMountId: IDSource; nextLiveQueryId: IDSource; relationCreatedListeners: { pattern: Tuple; onCreate: (rel: Tuple) => void; }[]; liveQueries: Map; pendingChangeEvents: Map; _isFlushingChangeEvents: boolean; constructor(options?: GraphOptions); findTable(name: string): TableMount; defineInMemoryTable(name: string, pattern: Tuple): TableMount; addTable(table: TableMount): TableMount; addTables(tables: TableMount[]): void; takeNextUniqueIdForAttr(attr: string): string; addListener(pattern: Tuple, listener: GraphListener): void; addListenerV2(tuple: Tuple, listener: TableListener): string; onTupleCreated(rel: Tuple): void; onTupleUpdated(rel: Tuple): void; onTupleDeleted(rel: Tuple): void; run(commandStr: string, output?: Stream): void; runSync(commandStr: string): Tuple[]; runAsync(commandStr: string): Promise; get(patternInput: any, out: Stream): void; set(patternInput: any, out: Stream): void; setAsync(patternInput: any): Promise; sendRelationValue(searchPattern: Tuple, out: Stream, attrName: string): void; close(): void; mountMapBackedTable(name: string, baseKey: Tuple, keyAttr: string, valueAttr: string): Map; mountSingleValueTable(name: string, base: Tuple | string, valueAttr: string): import("./tables/SingleValueTable").ValueAccessor; getRelationAsync(patternInput: any): Promise; query(patternStr: string): SavedQuery; pushChangeEvent(liveQueryId: string): void; flushPendingChangeEvents(): void; newLiveQuery(queryStr: string): LiveQuery; } export {};