import { DbIdType, RelationNameType, LogicalTimestep, ToBeFilled } from "../parser/dielAstTypes"; import { DbSetupConfig } from "./DbEngine"; import { SqlRelation } from "../parser/sqlAstTypes"; export declare type ExecutionSpec = { dbId: DbIdType; relationDef: SqlRelation; }[]; export interface NodeDependencyAugmented extends NodeDependency { remoteId?: ToBeFilled; } export declare type NodeDependency = { relationName: string; dependsOn: RelationNameType[]; isDependedBy: RelationNameType[]; isDynamic: boolean; }; export declare type DependencyTree = Map; export interface DependencyInfo { depTree: DependencyTree; topologicalOrder: string[]; inputDependenciesOutput: Map>; inputDependenciesAll: Map>; } export interface DielConfig { dielFiles: string[]; setupCb: () => void; showLog?: boolean; isStrict?: boolean; mainDbPath?: string; dbConfigs?: DbSetupConfig[]; caching?: boolean; } export declare type GetRelationToShipFuncType = (dbId: DbIdType, relation: string, step: LogicalTimestep) => Set; export declare type RecordObject = { [index: string]: string | number | Uint8Array; }; export declare type RelationObject = RecordObject[]; export declare enum DbType { Local = "Local", Worker = "Worker", Socket = "Socket" } export interface TableMetaData { dbId: DbIdType; } export declare enum DielRemoteAction { ConnectToDb = "ConnectToDb", GetResultsByPromise = "GetResultsByPromise", DefineRelations = "DefineRelations", UpdateRelation = "UpdateRelation", ShipRelation = "ShipRelation", CleanUpQueries = "CleanUpQueries", Close = "Close" } export interface DielRemoteMessageId { remoteAction: DielRemoteAction; relationName?: RelationNameType; msgId?: number; requestTimestep?: number; } export interface DielRemoteReply { id: DielRemoteMessageId; results: RelationObject; err: any; } interface DielRemoteMessageBase { remoteAction: DielRemoteAction; requestTimestep: LogicalTimestep; msgId?: number; } export interface RemoteGetResultsByPromiseMessage extends RemoteExecuteMessage { msgId: number; } export interface RemoteShipRelationMessage extends DielRemoteMessageBase { relationName: RelationNameType; dbId: DbIdType; } export interface RemoteOpenDbMessage extends DielRemoteMessageBase { message?: string; buffer?: Uint8Array; } export interface RemoteUpdateRelationMessage extends RemoteExecuteMessage { relationName: RelationNameType; } export interface RemoteExecuteMessage extends DielRemoteMessageBase { sql: string; } export declare type DielRemoteMessage = RemoteGetResultsByPromiseMessage | RemoteShipRelationMessage | RemoteUpdateRelationMessage | RemoteOpenDbMessage; export {}; //# sourceMappingURL=runtimeTypes.d.ts.map