import { type TarEntry } from './parser.js'; export interface ExtractOptions { /** * Strip N leading path components from every entry name. npm tarballs put * everything under `package/`, so the default is 1 (matches `npm install`). */ strip?: number; /** Filter — return false to skip an entry. */ filter?: (entry: TarEntry, resolvedPath: string) => boolean; /** Override file mode bits (after umask). Useful for `.bin/` to add +x. */ chmod?: (entry: TarEntry, resolvedPath: string) => number | undefined; /** Reject entries whose resolved path escapes destDir. Default: true. */ preventEscape?: boolean; /** Treat input as gzipped. Default: auto-detect via gzip magic bytes. */ gzip?: boolean; } export interface ExtractResult { files: string[]; directories: string[]; symlinks: string[]; skipped: number; } /** Extract a `.tar` or `.tar.gz` buffer into `destDir`, creating dirs as needed. */ export declare function extractTarball(input: Uint8Array | ArrayBuffer, destDir: string, opts?: ExtractOptions): Promise; /** Decompress a gzip buffer using Web DecompressionStream (cross-platform). */ export declare function gunzip(input: Uint8Array): Promise; /** Compress a buffer to gzip using Web CompressionStream (cross-platform). */ export declare function gzip(input: Uint8Array): Promise;