/** * Size of the batch header in bytes. * Layout: u64 (partitionId) + u64 (baseOffset) + u64 (baseTimestamp) + * u64 (originTimestamp) + u64 (batchLength) + u64 (batchChecksum) + * u32 (messageCount) + zero padding up to 256 bytes. */ export declare const BATCH_HEADER_SIZE = 256; /** * Size of the per-message frame header in bytes. * Layout: u64 (checksum) + u128 (id) + u32 (offsetDelta) + * u32 (timestampDelta) + u32 (userHeadersLength) + u32 (payloadLength) + * u64 (reserved). */ export declare const FRAME_HEADER_SIZE = 48; /** * Batch header describing a run of message frames. */ export type BatchHeader = { /** Partition the batch belongs to (zero when sent by a client) */ partitionId: bigint; /** Offset of the first message in the batch (zero when sent by a client) */ baseOffset: bigint; /** Server timestamp of the batch in microseconds (zero when sent by a client) */ baseTimestamp: bigint; /** Smallest origin timestamp of the batched messages in microseconds */ originTimestamp: bigint; /** Total batch size in bytes, header included */ batchLength: bigint; /** XXH3-64 checksum of the batch header fields and frame checksums */ batchChecksum: bigint; /** Number of message frames in the batch */ messageCount: number; }; /** * Per-message frame header. */ export type FrameHeader = { /** XXH3-64 checksum of the frame past this field, payload and user headers included */ checksum: bigint; /** Unique message identifier */ id: bigint; /** Index of the message within the batch */ offsetDelta: number; /** Message origin timestamp minus batch origin timestamp in microseconds */ timestampDelta: number; /** Length of user-defined headers in bytes */ userHeadersLength: number; /** Length of message payload in bytes */ payloadLength: number; /** Reserved for future use, must be zero */ reserved: bigint; }; /** * Serializes a batch header to its 256-byte wire format. * * @param header - Batch header to serialize * @returns Serialized batch header buffer */ export declare const serializeBatchHeader: (header: BatchHeader) => Buffer; /** * Deserializes a batch header from a buffer. * * @param b - Buffer containing the serialized batch header * @param pos - Starting position in the buffer * @returns Parsed BatchHeader object */ export declare const deserializeBatchHeader: (b: Buffer, pos?: number) => BatchHeader; /** * Deserializes a frame header from a buffer. * * @param b - Buffer containing the serialized frame header * @param pos - Starting position in the buffer * @returns Parsed FrameHeader object */ export declare const deserializeFrameHeader: (b: Buffer, pos?: number) => FrameHeader; /** * Computes the XXH3-64 checksum of a complete frame. * Covers everything past the checksum field: the remaining frame header, * the payload, and the user headers. * * @param frame - Complete frame buffer [header][payload][user headers] * @returns Frame checksum */ export declare const frameChecksum: (frame: Buffer) => bigint; /** * Computes the XXH3-64 checksum of a batch. * Covers the batch header fields up to the checksum, the message count, * and each frame checksum in message order. * * @param header - Batch header fields, batchChecksum ignored * @param frameChecksums - Frame checksums in message order * @returns Batch checksum */ export declare const batchChecksum: (header: Omit, frameChecksums: bigint[]) => bigint; /** * Iggy message header containing metadata for each polled message. */ export type IggyMessageHeader = { /** Message checksum for integrity verification */ checksum: bigint; /** Unique message identifier (UUID or numeric) */ id: string | bigint; /** Message offset within the partition */ offset: bigint; /** Server-assigned timestamp */ timestamp: Date; /** Client-provided origin timestamp */ originTimestamp: Date; /** Length of user-defined headers in bytes */ userHeadersLength: number; /** Length of message payload in bytes */ payloadLength: number; /** Reserved for future use */ reserved: bigint; }; /** * Deserializes a message ID from a 16-byte buffer to BigInt. * * @param b - 16-byte buffer containing the message ID * @returns Message ID as BigInt */ export declare const deserialiseMessageId: (b: Buffer) => bigint; //# sourceMappingURL=iggy-header.utils.d.ts.map