import { DbConfiguration } from 'oak-db/src/types/configuration'; import { EntityDict, StorageSchema, Trigger, Checker, SelectFreeEntities, UpdateFreeDict, AuthDeduceRelationMap, VolatileTrigger, OperateOption } from 'oak-domain/lib/types'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain'; import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext'; import { DbTypeSymbol } from './utils/dbPriority'; import { CascadeStore } from 'oak-domain/lib/store/CascadeStore'; import { DbStore } from 'oak-db/lib/types/dbStore'; export type TriggerStore> = { registerTrigger(trigger: Trigger): void; registerChecker(checker: Checker): void; setOnVolatileTrigger(onVolatileTrigger: (entity: T, trigger: VolatileTrigger, ids: string[], cxtStr: string, option: OperateOption) => Promise): void; execVolatileTrigger(entity: T, name: string, ids: string[], context: Cxt, option: OperateOption): Promise; checkpoint(ts: number): Promise; independentCheckPoint(name: string, ts: number, instanceCount?: number, instanceId?: number): Promise; }; export type AppDbStore> = DbStore & CascadeStore & TriggerStore; export declare const createDbStore: >(storageSchema: StorageSchema, contextBuilder: () => Cxt, dbConfiguration: DbConfiguration & { [DbTypeSymbol]?: string; }, authDeduceRelationMap: AuthDeduceRelationMap, selectFreeEntities?: SelectFreeEntities, updateFreeDict?: UpdateFreeDict, onVolatileTrigger?: (entity: T, trigger: VolatileTrigger, ids: string[], cxtStr: string, option: OperateOption) => Promise) => AppDbStore;