import { DatabaseTransaction, type CommitOptions, type TransactionWrite } from './DatabaseTransaction';
import { Transaction as RocksTransaction } from '@harperfast/rocksdb-js';
import type { RootDatabaseKind } from './databases.ts';
export declare const TRANSACTION_STATE: {
    CLOSED: number;
    OPEN: number;
    LINGERING: number;
};
export declare function replicationConfirmation(callback: any): void;
export declare class LMDBTransaction extends DatabaseTransaction {
    #private;
    writes: TransactionWrite[];
    validated: number;
    _timestamp: number;
    next: DatabaseTransaction;
    stale: boolean;
    overloadChecked: boolean;
    open: number;
    getReadTxn(): any;
    useReadTxn(): (RocksTransaction | import("lmdb").Transaction) & {
        openTimer?: number;
        retryRisk?: number;
        isDone?: boolean;
        isCommitted?: boolean;
    };
    doneReadTxn(): void;
    disregardReadTxn(): void;
    addWrite(operation: TransactionWrite): any;
    removeWrite(operation: TransactionWrite): void;
    /**
     * Resolves with information on the timestamp and success of the commit
     */
    commit(options?: CommitOptions): any;
    abort(): void;
    save(..._args: any[]): any;
}
export declare class ImmediateTransaction extends LMDBTransaction {
    constructor(db: RootDatabaseKind);
    save(..._args: any[]): any;
    get timestamp(): number;
    set timestamp(value: number);
    getReadTxn(): void;
}
export declare function setTxnExpiration(ms: any): Set<DatabaseTransaction>;
