/**
 * Pure Uint8Array-based ZIP parser
 * Works in both Node.js and browser environments
 * No dependency on Node.js stream module
 */
import type { ZipEntryInfo } from "@archive/zip-spec/zip-entry-info";
export type { ZipEntryInfo };
/**
 * ZIP parsing options
 */
export interface ZipParseOptions {
    /** Whether to decode file names as UTF-8 (default: true) */
    decodeStrings?: boolean;
}
/**
 * High-level ZIP parser class
 */
export declare class ZipParser {
    private data;
    private entries;
    private entryMap;
    constructor(data: Uint8Array | ArrayBuffer, options?: ZipParseOptions);
    /**
     * Get all entries in the ZIP file
     */
    getEntries(): ZipEntryInfo[];
    /**
     * Get entry by path
     */
    getEntry(path: string): ZipEntryInfo | undefined;
    /**
     * Check if entry exists
     */
    hasEntry(path: string): boolean;
    /**
     * List all file paths
     */
    listFiles(): string[];
    /**
     * Extract a single file (async)
     */
    extract(path: string): Promise<Uint8Array | null>;
    /**
     * Extract a single file (sync)
     *
     * This is supported in both Node.js and browser builds.
     */
    extractSync(path: string): Uint8Array | null;
    /**
     * Extract all files (async)
     */
    extractAll(): Promise<Map<string, Uint8Array>>;
    /**
     * Extract all files (sync)
     * Returns object with file paths as keys and Uint8Array content as values
     */
    extractAllSync(): Record<string, Uint8Array>;
    /**
     * Iterate over entries with async callback
     */
    forEach(callback: (entry: ZipEntryInfo, getData: () => Promise<Uint8Array>) => Promise<boolean | void>): Promise<void>;
}
