/** @format */
import { HuffmanNode } from './huffman-node.js';
/**
 * Represents a JPEG component with its properties and methods.
 */
export declare class JpegComponent {
    /**
     * List of quantization tables.
     */
    private readonly _quantizationTableList;
    /**
     * Index of the quantization table.
     */
    private readonly _quantizationIndex;
    /**
     * Number of horizontal samples.
     */
    private readonly _hSamples;
    /**
     * Gets the number of horizontal samples.
     */
    get hSamples(): number;
    /**
     * Number of vertical samples.
     */
    private readonly _vSamples;
    /**
     * Gets the number of vertical samples.
     */
    get vSamples(): number;
    /**
     * 2D array of blocks.
     */
    private _blocks;
    /**
     * Gets the 2D array of blocks.
     */
    get blocks(): Array<Array<Int32Array>>;
    /**
     * Number of blocks per line.
     */
    private _blocksPerLine;
    /**
     * Gets the number of blocks per line.
     */
    get blocksPerLine(): number;
    /**
     * Number of blocks per column.
     */
    private _blocksPerColumn;
    /**
     * Gets the number of blocks per column.
     */
    get blocksPerColumn(): number;
    /**
     * Array of Huffman nodes for DC table.
     */
    private _huffmanTableDC;
    /**
     * Sets the Huffman table for DC.
     */
    set huffmanTableDC(v: Array<HuffmanNode | undefined>);
    /**
     * Gets the Huffman table for DC.
     */
    get huffmanTableDC(): Array<HuffmanNode | undefined>;
    /**
     * Array of Huffman nodes for AC table.
     */
    private _huffmanTableAC;
    /**
     * Sets the Huffman table for AC.
     */
    set huffmanTableAC(v: Array<HuffmanNode | undefined>);
    /**
     * Gets the Huffman table for AC.
     */
    get huffmanTableAC(): Array<HuffmanNode | undefined>;
    /**
     * Prediction value.
     */
    private _pred;
    /**
     * Sets the prediction value.
     */
    set pred(v: number);
    /**
     * Gets the prediction value.
     */
    get pred(): number;
    /**
     * Gets the quantization table.
     */
    get quantizationTable(): Int16Array | undefined;
    /**
     * Constructs a new instance of JpegComponent.
     * @param {number} hSamples - Number of horizontal samples.
     * @param {number} vSamples - Number of vertical samples.
     * @param {Array<Int16Array | undefined>} quantizationTableList - List of quantization tables.
     * @param {number} quantizationIndex - Index of the quantization table.
     */
    constructor(hSamples: number, vSamples: number, quantizationTableList: Array<Int16Array | undefined>, quantizationIndex: number);
    /**
     * Sets the blocks and their dimensions.
     * @param {Array<Array<Int32Array>>} blocks - 2D array of blocks.
     * @param {number} blocksPerLine - Number of blocks per line.
     * @param {number} blocksPerColumn - Number of blocks per column.
     */
    setBlocks(blocks: Array<Array<Int32Array>>, blocksPerLine: number, blocksPerColumn: number): void;
}
