import { _PdfDictionary, _PdfReference } from './pdf-primitives';
/**
 * Base class for PDF streams used internally by the PDF core.
 *
 * @private
 */
export declare abstract class _PdfBaseStream {
    offset: number;
    dictionary: _PdfDictionary;
    reference: _PdfReference;
    /**
     * Indicates whether the stream is compressed.
     *
     * @private
     */
    _isCompress: boolean;
    /**
     * Indicates whether the stream represents an image.
     *
     * @private
     */
    _isImage: boolean;
    getByte(): number;
    getBytes(length?: number): Uint8Array;
    readonly length: number;
    readonly isEmpty: boolean;
    readonly isDataLoaded: boolean;
    peekByte(): number;
    peekBytes(length: number): Uint8Array;
    getUnsignedInteger16(): number;
    getInt32(): number;
    getByteRange(begin: number, end: number): Uint8Array;
    makeSubStream(start: number, length: number, dictionary: _PdfDictionary): _PdfBaseStream;
    readBlock(): void;
    reset(): void;
    moveStart(): void;
    getString(isHex?: boolean, bytes?: Uint8Array): string;
    skip(n?: number): void;
    getBaseStreams(): _PdfBaseStream[];
}
/**
 * In-memory PDF stream implementation backed by a `Uint8Array`.
 *
 * @private
 */
export declare class _PdfStream extends _PdfBaseStream {
    constructor(arrayBuffer: number[] | Uint8Array | ArrayBuffer, dictionary?: _PdfDictionary, start?: number, length?: number);
    bytes: Uint8Array;
    start: number;
    isImageStream: boolean;
    end: number;
    /**
     * Gets the position of the stream.
     *
     * @returns {number} offset position.
     */
    /**
    * Sets the position of the stream.
    *
    * @param {number} value offset position.
    */
    position: number;
    /**
     * Gets the length of the stream (Read only).
     *
     * @returns {number} length.
     */
    readonly length: number;
    /**
     * Gets a value indicating whether the stream is empty (Read only).
     *
     * @returns {boolean} stream empty or not.
     */
    readonly isEmpty: boolean;
    getByte(): number;
    getBytes(length?: number): Uint8Array;
    getByteRange(begin: number, end: number): Uint8Array;
    reset(): void;
    moveStart(): void;
    makeSubStream(start: number, length: number, dictionary?: _PdfDictionary): _PdfStream;
    readBlock(): void;
    /**
     * Clear filter-related metadata and mark the stream as compressed.
     *
     * @private
     * @returns {void} nothing.
     */
    _clearStream(): void;
    /**
     * Replace the stream contents with the UTF-16 code units of `text`.
     *
     * @private
     * @param {string} text - Text to write into the stream.
     * @returns {void} nothing.
     */
    _write(text: string): void;
    /**
     * Replace the stream contents with the provided byte array.
     *
     * @private
     * @param {number[]} data - Array of byte values to write.
     * @returns {void} nothing.
     */
    _writeBytes(data: number[]): void;
}
/**
 * Content stream used to build PDF page content incrementally.
 *
 * @private
 */
export declare class _PdfContentStream extends _PdfBaseStream {
    /**
     * Internal byte buffer for the content stream.
     *
     * @private
     */
    _bytes: number[];
    /**
     * Pending resources key reference used by the content stream.
     *
     * @private
     */
    _pendingResources: string;
    readonly length: number;
    constructor(bytes: number[]);
    write(data: string | number[]): void;
    getString(isHex?: boolean): string;
}
/**
 * Represents an empty  PDF stream.
 * This class is useful when a valid `_PdfStream` instance is required
 * but no payload/content should be present (e.g., placeholders, defaults).
 *
 * @private
 */
export declare class _PdfNullStream extends _PdfStream {
    constructor();
}
