export interface QueueRecord { schemaVersion: number; installId: string; mmaVersion: string; os: 'darwin' | 'linux' | 'win32' | 'other'; nodeMajor: number; generation: number; events: Record[]; } /** * What `truncate()` needs to verify a batch before cutting it: where each record starts, and what * it hashed to. A `byteLength` sat here too, set on every record and read by nothing — `truncate` * compares `sha256` and `byteOffset` and derives the rest from the buffer. */ interface RecordMeta { byteOffset: number; sha256: string; } export interface ReadBatchResult { records: QueueRecord[]; meta: RecordMeta[]; } export declare class Queue { #private; constructor(dir: string); get queuePath(): string; append(record: QueueRecord): Promise; readBatch(maxRecords?: number): Promise; /** * Remove records whose SHA-256 hashes are in the provided set. * Rebuilds the queue file from scratch — safe for arbitrary (non-contiguous) * removal. Returns the number of records actually removed. */ removeRecords(hashes: Set): Promise; truncate(expectedMeta: RecordMeta[]): Promise; } export {}; //# sourceMappingURL=queue.d.ts.map