import * as Builder from './builder'; import type * as RPC from './rpc'; import { NSApplicator } from '../base/util'; export declare const enum Isolation { SerializableSnapshot = 0, Serializable = 1, RepeatableReads = 2, ReadCommitted = 3 } export interface ISTMOptions { retries: number; prefetch: string[]; isolation: Isolation; } export declare class SoftwareTransaction { private readonly options; private readonly namespace; private readonly rawKV; private readonly kv; private tx; constructor(options: ISTMOptions, namespace: NSApplicator, rawKV: RPC.KVClient); transact(fn: (tx: this) => T | PromiseLike): Promise; get(key: string): Builder.SingleRangeBuilder; put(key: string | Buffer): Builder.PutBuilder; delete(): Builder.DeleteBuilder; private transactInner; private commit; }