export declare const enum TransactionType { INSERT = "insert", UPDATE = "update", UPSERT = "upsert", REPLACE = "replace", DELETE = "delete", NONE = "none", CHECK = "check", FORCE_ROLLBACK = "rollback", TRUNCATE = "truncate", BEGIN = "begin", END = "end", ABORT = "abort", BEGIN_IMPORT = "begin_import", END_IMPORT = "end_import", ABORT_IMPORT = "abort_import", BEGIN_RESTORE = "begin_restore", END_RESTORE = "end_restore", ABORT_RESTORE = "abort_restore", RESTORE = "restore" } /** * トランザクション要求 */ export declare class TransactionRequest { /** * "insert", "update", "delete" のいずれか */ type: TransactionType; /** * RFC4122 準拠のUUIDであり、オブジェクトの_id属性の値である。 */ target: string; /** * insertのときのみ * * 追加するオブジェクト。中身の形式は自由であるが、chip-in で予約されている _id, csn の2つの属性を含んでいてはいけない */ new?: object | string; /** * update,delete のとき * * 更新/削除するオブジェクトの直前の値(前提となるコンテキスト通番での値)で、_id, csn の2つの属性を含んでいなければならない */ before?: { [key: string]: any; } | string; /** * updateのときのみ * * 更新内容を記述するオペレータ。意味はmongoDB に準ずる。 */ operator?: { [op: string]: any; }; static getNew(self: TransactionRequest): object; static getBefore(self: TransactionRequest): { [key: string]: any; }; static getRawBefore(self: TransactionRequest): { [key: string]: any; }; /** * 更新operator適用 * @param transaction */ static applyOperator(transaction: TransactionRequest, beforeObj?: object, newObj?: object): { [key: string]: any; }; static _applyOperator(transaction: TransactionRequest, beforeObj?: object): { [key: string]: any; }; static applyMongodbUpdate(obj: object, operator: { [op: string]: object; }, currentDate?: Date): { [key: string]: any; }; } /** * トランザクションオブジェクト */ export declare class TransactionObject extends TransactionRequest { /** * トランザクションハッシュ生成 * @param transaction */ static calcDigest(transaction: TransactionObject): string; /** * トランザクションをコミットしたコンテキスト通番 */ csn: number; /** * トランザクションをコミットした時刻 */ datetime: Date; /** * 1個前のトランザクションオブジェクトのdigestの値 */ beforeDigest: string; /** * ジャーナルチェックのためのUUID */ digest?: string; /** * 保護CSN */ protectedCsn?: number; /** * コミット済みCSN */ committedCsn?: number; }