import { KaitaiStream, StreamBufferType } from "./kaitai-stream";
export declare class KaitaiStreamReader extends KaitaiStream {
    static fromArray(array: Uint8Array): KaitaiStreamReader;
    static create(packet: Uint8Array | KaitaiStreamReader): KaitaiStreamReader;
    /**
      KaitaiStream is an implementation of Kaitai Struct API for JavaScript.
      Based on DataStream - https://github.com/kig/DataStream.js
      @param {ArrayBuffer} arrayBuffer ArrayBuffer to read from.
      @param {?Number} byteOffset Offset from arrayBuffer beginning for the KaitaiStream.
      */
    constructor(arrayBuffer?: StreamBufferType, byteOffset?: number, isBigEndian?: boolean);
    readS(size: 1 | 2 | 4): number;
    read(type: 'f' | 'u' | 's' | 'b', bitSize: number, isLittleEndian?: boolean): any;
    /**
      Reads an 8-bit signed int from the stream.
      @return {number} The read number.
     */
    readS1(): number;
    /**
      Reads a 16-bit big-endian signed int from the stream.
      @return {number} The read number.
     */
    readS2be(): number;
    /**
      Reads a 32-bit big-endian signed int from the stream.
      @return {number} The read number.
     */
    readS4be(): number;
    /**
      Reads a 64-bit big-endian unsigned int from the stream. Note that
      JavaScript does not support 64-bit integers natively, so it will
      automatically upgrade internal representation to use IEEE 754
      double precision float.
      @return {number} The read number.
     */
    readS8be(): number;
    /**
      Reads a 16-bit little-endian signed int from the stream.
      @return {number} The read number.
     */
    readS2le(): number;
    /**
      Reads a 32-bit little-endian signed int from the stream.
      @return {number} The read number.
     */
    readS4le(): number;
    /**
      Reads a 64-bit little-endian unsigned int from the stream. Note that
      JavaScript does not support 64-bit integers natively, so it will
      automatically upgrade internal representation to use IEEE 754
      double precision float.
      @return {number} The read number.
     */
    readS8le(): number;
    /**
     * Read unsigned
     * @param size
     */
    readU(size: 1 | 2 | 4 | number): number;
    /**
      Reads an 8-bit unsigned int from the stream.
      @return {number} The read number.
     */
    readU1(): number;
    /**
      Reads a 16-bit big-endian unsigned int from the stream.
      @return {number} The read number.
     */
    readU2be(): number;
    /**
      Reads a 32-bit big-endian unsigned int from the stream.
      @return {number} The read number.
     */
    readU4be(): number;
    /**
      Reads a 64-bit big-endian unsigned int from the stream. Note that
      JavaScript does not support 64-bit integers natively, so it will
      automatically upgrade internal representation to use IEEE 754
      double precision float.
      @return {number} The read number.
     */
    readU8be(): number;
    /**
      Reads a 16-bit little-endian unsigned int from the stream.
      @return {number} The read number.
     */
    readU2le(): number;
    /**
      Reads a 32-bit little-endian unsigned int from the stream.
      @return {number} The read number.
     */
    readU4le(): number;
    /**
      Reads a 64-bit little-endian unsigned int from the stream. Note that
      JavaScript does not support 64-bit integers natively, so it will
      automatically upgrade internal representation to use IEEE 754
      double precision float.
      @return {number} The read number.
     */
    readU8le(): number;
    readF(size: 4 | 8): number;
    readF4be(): number;
    readF8be(): number;
    readF4le(): number;
    readF8le(): number;
    readBitsBoolean(n: number): boolean;
    readB(n: number): number;
    forwardBits(n: number): this;
    readBitsInt(n: number): number;
    readBytes(len: number): Uint8Array;
    readBytesFull(): Uint8Array;
    readBytesTerm(terminator: number, include: boolean, consume: boolean, eosError: boolean): Uint8Array;
    ensureFixedContents(expected: Uint8Array): Uint8Array;
}
