import * as datalog from '@createdreamtech/datalog'; import { Actions } from '../actions'; import { Storage, RemoteStorage } from "../storage/storage"; interface CirrusLookupTable { [tableName: string]: CirrusTable; } export interface CirrusTable extends datalog.Table { asserts(v: Val, __origin?: string): Promise; retracts(v: Val, __origin?: string): Promise; } export interface CirrusMetadata { __origin?: string; } interface ForeignKeys { appKey: string; pubKey: string; } export declare class Cirrus { storage: Storage & RemoteStorage; tableLookup: CirrusLookupTable; foreignKeys: Array; defaultOrigin: string; constructor(storage: Storage & RemoteStorage, defaultOrigin: string); newTable(tableName: string, schema: datalog.TableSchema, __origin?: string): Promise>; getTable(tableName: string, schema: datalog.TableSchema, __origin?: string): Promise>; exists(tableName: string): boolean; play(actions: Array): Promise; init(): Promise; refresh(): Promise; saveOnly(filter: (f: Actions) => boolean): Promise; save(): Promise; add(appKey: string, pubKey: string): Promise; rm(): void; } export {};