/** @format */
import { InputBuffer } from '../../common/input-buffer.js';
/**
 * Class representing a VP8 bit reader.
 */
export declare class VP8BitReader {
    /**
     * The input buffer.
     */
    private _input;
    /**
     * Current range minus 1. In [127, 254] interval.
     */
    private _range;
    /**
     * Current value.
     */
    private _value;
    /**
     * Number of valid bits left.
     */
    private _bits;
    /**
     * End of file flag.
     */
    private _eof;
    /**
     * Creates an instance of VP8BitReader.
     * @param {InputBuffer<Uint8Array>} input - The input buffer.
     */
    constructor(input: InputBuffer<Uint8Array>);
    /**
     * Loads the final bytes from the input buffer.
     */
    private loadFinalBytes;
    /**
     * Loads new bytes from the input buffer.
     */
    private loadNewBytes;
    /**
     * Updates the bit based on the split value.
     * @param {number} split - The split value.
     * @returns {number} The updated bit.
     */
    private bitUpdate;
    /**
     * Shifts the range and bits.
     */
    private shift;
    /**
     * Gets a bit based on the probability.
     * @param {number} prob - The probability.
     * @returns {number} The bit.
     */
    getBit(prob: number): number;
    /**
     * Gets a value based on the number of bits.
     * @param {number} bits - The number of bits.
     * @returns {number} The value.
     */
    getValue(bits: number): number;
    /**
     * Gets a single bit value.
     * @returns {number} The bit value.
     */
    get(): number;
    /**
     * Gets a signed value based on the input value.
     * @param {number} v - The input value.
     * @returns {number} The signed value.
     */
    getSigned(v: number): number;
    /**
     * Gets a signed value based on the number of bits.
     * @param {number} bits - The number of bits.
     * @returns {number} The signed value.
     */
    getSignedValue(bits: number): number;
    /**
     * Log2 range values.
     */
    private static readonly log2Range;
    /**
     * New range values.
     */
    private static readonly newRange;
}
