import { DbType, RelationObject, DielRemoteMessage, DielRemoteReply, RemoteUpdateRelationMessage } from "./runtimeTypes"; import { RelationShippingFuncType } from "./DielRuntime"; import { DielPhysicalExecution } from "../compiler/DielPhysicalExecution"; import { ConnectionWrapper } from "./ConnectionWrapper"; import { LogicalTimestep, RelationNameType, DbIdType } from "../parser/dielAstTypes"; interface DbSetupConfigBase { dbType: DbType; } export interface SocketConfig extends DbSetupConfigBase { connection: string; message?: any; } export interface WorkerConfig extends DbSetupConfigBase { jsFile: string; dataFile: string; } export declare type DbSetupConfig = SocketConfig | WorkerConfig; export default class DbEngine { totalMsgCount: number; msgCountTimeStamp: number; currentQueueHead: LogicalTimestep | null; physicalExeuctionRef: DielPhysicalExecution; queueMap: Map; received: Set; receivedValues: RemoteUpdateRelationMessage[]; relationsToShip: Map>; }>; config: DbSetupConfig; id: DbIdType; relationShippingCallback: RelationShippingFuncType; connection: ConnectionWrapper; constructor(config: DbSetupConfig, remoteId: number, relationShippingCallback: RelationShippingFuncType); Close(): void; setup(): Promise; private nextQueue; private evaluateQueueOnUpdateHandler; private extendMsgWithCustom; SendMsg(msg: DielRemoteMessage, isPromise?: boolean): Promise | null; /** * This function generates the handler for when the original messages (i.e., actions to the databases) * have been completed. */ getHandleMsgForRemote(): (msg: DielRemoteReply) => Promise; private sanityCheck; setPhysicalExecutionReference(physicalExeuctionRef: DielPhysicalExecution): void; downloadDb(): void; /** * SqlitemasterQuery returns sql and name */ getMetaData(id: DbIdType): Promise<{ id: DbIdType; data: RelationObject | null; }>; } export {}; //# sourceMappingURL=DbEngine.d.ts.map