export type AuditRecord = {
    version?: number;
    localTime?: number;
    type: string;
    encodedRecord: Buffer;
    extendedType: number;
    residencyId: number;
    previousResidencyId: number;
    expiresAt: Date | null;
    originatingOperation: string;
    tableId: number;
    recordId: number;
    previousVersion: number;
    user?: string;
    nodeId?: number;
    previousNodeId?: number;
    previousAdditionalAuditRefs?: Array<{
        version: number;
        nodeId: number;
    }>;
    endTxn?: boolean;
    structureVersion?: number;
};
export declare const ENTRY_DATAVIEW: DataView<ArrayBuffer>;
export declare const transactionKeyEncoder: {
    writeKey(key: any, buffer: any, position: any): any;
    readKey(buffer: any, start: any, end: any): any;
};
export declare const AUDIT_STORE_OPTIONS: {
    encoder: {
        needsStableBuffer: boolean;
        encode: (auditRecord: AuditRecord) => Buffer<ArrayBuffer> | (AuditRecord & Uint8Array<ArrayBufferLike>);
        decode: (encoding: Buffer) => AuditRecord;
    };
    keyEncoder: {
        writeKey(key: any, buffer: any, position: any): any;
        readKey(buffer: any, start: any, end: any): any;
    };
};
export declare let auditRetention: number;
export declare function openAuditStore(rootStore: any): any;
export declare function removeAuditEntry(auditStore: any, auditRecord: AuditRecord): Promise<void>;
export declare function getLastRemoved(auditStore: any): number;
export declare function setAuditRetention(retentionTime: any, defaultDelay?: number): void;
export declare const ACTION_32_BIT = 14;
export declare const ACTION_64_BIT = 15;
/** Used to indicate we have received a remote local time update */
export declare const REMOTE_SEQUENCE_UPDATE = 11;
export declare const HAS_CURRENT_RESIDENCY_ID = 512;
export declare const HAS_PREVIOUS_RESIDENCY_ID = 1024;
export declare const HAS_ORIGINATING_OPERATION = 2048;
export declare const HAS_EXPIRATION_EXTENDED_TYPE = 4096;
export declare const HAS_BLOBS = 8192;
export declare const HAS_ADDITIONAL_AUDIT_REFS = 16384;
/**
 * Creates a binary audit entry
 * @param txnTime
 * @param tableId
 * @param recordId
 * @param previousVersion
 * @param nodeId
 * @param user
 * @param type
 * @param encodedRecord
 * @param extendedType
 * @param residencyId
 * @param previousResidencyId
 */
export declare function createAuditEntry(auditRecord: AuditRecord, start?: number): Buffer<ArrayBuffer>;
/**
 * Reads a audit entry from binary data
 * @param buffer
 * @param start
 * @param end
 */
export declare function readAuditEntry(buffer: Uint8Array, start?: number, end?: any): AuditRecord;
export declare class Decoder extends DataView<ArrayBufferLike> {
    position: number;
    readInt(): any;
    readFloat64(): number;
}
