import { ResourceNode, ServiceEngine } from "@chip-in/resource-node"; import * as AsyncLock from "async-lock"; import { JournalDb } from "../db/JournalDb"; import { SystemDb } from "../db/SystemDb"; import { TransactionObject, TransactionRequest, TransactionType } from "../db/Transaction"; /** * コンテキストマネージャコンフィグレーションパラメータ */ export declare class ContextManagerConfigDef { /** * データベース名 */ database: string; } /** * コンテキストマネージャ(ContextManager) * * コンテキストマネージャは、逆接続プロキシの Rest API で exec メソッドを提供する。 */ export declare class ContextManager extends ServiceEngine { bootOrder: number; committedCsn?: number; private logger; private option; private node; private database; private journalDb; private systemDb; private subscriber; private server; private mountHandle?; private lock; private subscriberKey; private uniqueIndexes; private digestMap; constructor(option: ContextManagerConfigDef); getNode(): ResourceNode; getDatabase(): string; getJournalDb(): JournalDb; getSystemDb(): SystemDb; getLock(): AsyncLock; getMountHandle(): string | undefined; getDigestMap(): Map; start(node: ResourceNode): Promise; stop(node: ResourceNode): Promise; connect(): void; private procAfterContextManagementServerConnect; checkUniqueConstraint(csn: number, request: TransactionRequest, options?: ExecOptions): Promise; private _find; private _checkUniqueConstraint; updateUniqueCache(transaction: TransactionObject): void; resetUniqueCache(csn: number): void; _waitSubsetStorage(result: any): Promise; } export declare class ExecOptions { /** * ユニーク制約エラーの場合にスキップして処理を継続する。(_idは不可) */ continueOnUniqueError?: boolean; /** * ユニーク制約エラーの場合にupsertを実行する */ upsertOnUniqueError?: boolean; /** * ユニーク制約エラーの場合にreplaceを実行する */ replaceOnUniqueError?: boolean; static continueOnError(options: ExecOptions | undefined, e: any): boolean; } export declare class TransactionUpdateDetail { type: TransactionType; target: string; csn: number; data?: object; }