/**
 * Write queue for sequential entry writing while maintaining ZIP structure
 */
import { EntryBuffer } from './entry-buffer.js';
import { DirectStreamEntry } from './direct-stream-entry.js';
export interface WriteQueueOptions {
    compression?: 'store' | 'deflate';
}
export declare class WriteQueue {
    private outputController;
    private currentOffset;
    private centralDirectoryEntries;
    private options;
    private writeInProgress;
    constructor(options?: WriteQueueOptions);
    /**
     * Set the output controller for streaming data
     */
    setOutputController(controller: ReadableStreamDefaultController<Uint8Array>): void;
    /**
     * Write an entry buffer to the output stream
     */
    writeEntry(entryBuffer: EntryBuffer): Promise<void>;
    /**
     * Write a direct stream entry immediately to the output stream
     */
    writeDirectStreamEntry(directEntry: DirectStreamEntry): Promise<void>;
    /**
     * Write the central directory to the output stream
     */
    writeCentralDirectory(): Promise<{
        centralDirOffset: number;
        centralDirSize: number;
    }>;
    /**
     * Get the current offset in the output stream
     */
    getCurrentOffset(): number;
    /**
     * Get the number of entries written
     */
    getEntryCount(): number;
    /**
     * Check if any write operations are in progress
     */
    isWriteInProgress(): boolean;
    /**
     * Perform immediate direct stream write operation
     */
    private performDirectStreamWrite;
    /**
     * Perform the actual entry write operation
     */
    private performEntryWrite;
    /**
     * Create local file header for entry
     */
    private createLocalFileHeader;
    /**
     * Create data descriptor for entry
     */
    private createDataDescriptor;
    /**
     * Create central directory header for entry
     */
    private createCentralDirectoryHeader;
    /**
     * Create local file header for direct stream entry
     */
    private createDirectStreamLocalFileHeader;
    /**
     * Create data descriptor for direct stream entry
     */
    private createDirectStreamDataDescriptor;
    /**
     * Create central directory header for direct stream entry
     */
    private createDirectStreamCentralDirectoryHeader;
    /**
     * Write data to the output stream
     */
    private writeToOutput;
}
//# sourceMappingURL=write-queue.d.ts.map