/** * TAR Header Utilities * * Functions for encoding and decoding TAR headers. */ import { type TarType } from "./tar-constants.js"; import type { TarEntryInfo } from "./tar-entry-info.js"; /** * Validate header checksum */ export declare function validateChecksum(header: Uint8Array): boolean; /** * Check if a block is all zeros (end of archive marker) * Optimized to check 4 bytes at a time using DataView */ export declare function isZeroBlock(block: Uint8Array): boolean; export interface TarHeaderOptions { path: string; size?: number; mode?: number; uid?: number; gid?: number; mtime?: Date; type?: TarType; linkname?: string; uname?: string; gname?: string; devmajor?: number; devminor?: number; } /** * Encode a TAR header * * Returns { header, longName? } where longName is an optional GNU long name entry * if the filename exceeds ustar limits. */ export declare function encodeHeader(options: TarHeaderOptions): { header: Uint8Array; longName?: Uint8Array; }; /** * Decode a TAR header */ export declare function decodeHeader(header: Uint8Array): TarEntryInfo | null; /** * Calculate padding needed to reach next block boundary */ export declare function calculatePadding(size: number): number; /** * Create padding bytes (uses cached buffers to avoid allocation) */ export declare function createPadding(size: number): Uint8Array; /** * Create end-of-archive marker (two zero blocks) */ export declare function createEndOfArchive(): Uint8Array;