/**
 * A utility class for reading binary data from an ArrayBuffer.
 * Provides methods to read various data types and manage the read position.
 */
export declare class ShxFileReader {
    /** Current position in the buffer */
    private position;
    /** DataView instance for reading binary data */
    private data;
    /**
     * Converts an unsigned byte to a signed byte as used in SHX format.
     * Values > 127 are converted to their signed equivalent (-128 to -1).
     * @param value - The unsigned byte value to convert
     * @returns The signed byte value
     */
    static byteToSByte(value: number): number;
    /**
     * Creates a new ShxFileReader instance.
     * @param arraybuffer - The ArrayBuffer to read from
     */
    constructor(arraybuffer: ArrayBuffer);
    /**
     * Reads a specified number of bytes from the current position.
     * @param length - Number of bytes to read (optional)
     * @returns A Uint8Array containing the read bytes
     * @throws Error if reading beyond buffer bounds
     */
    readBytes(length?: number): Uint8Array;
    /**
     * Skips a specified number of bytes from the current position.
     * @param length - Number of bytes to skip
     * @throws Error if skipping beyond buffer bounds
     */
    skip(length: number): void;
    /**
     * Reads an unsigned 8-bit integer.
     * @returns The read uint8 value
     * @throws Error if reading beyond buffer bounds
     */
    readUint8(): number;
    /**
     * Reads a signed 8-bit integer.
     * @returns The read int8 value
     * @throws Error if reading beyond buffer bounds
     */
    readInt8(): number;
    /**
     * Reads an unsigned 16-bit integer.
     * @param littleEndian If false, a big-endian value should be read.
     * @returns The read uint16 value
     * @throws Error if reading beyond buffer bounds
     */
    readUint16(littleEndian?: boolean): number;
    /**
     * Reads a signed 16-bit integer.
     * @returns The read int16 value
     * @throws Error if reading beyond buffer bounds
     */
    readInt16(): number;
    /**
     * Reads an unsigned 32-bit integer.
     * @returns The read uint32 value
     * @throws Error if reading beyond buffer bounds
     */
    readUint32(): number;
    /**
     * Reads a signed 32-bit integer.
     * @returns The read int32 value
     * @throws Error if reading beyond buffer bounds
     */
    readInt32(): number;
    /**
     * Reads a 32-bit floating point number.
     * @returns The read float32 value
     * @throws Error if reading beyond buffer bounds
     */
    readFloat32(): number;
    /**
     * Reads a 64-bit floating point number.
     * @returns The read float64 value
     * @throws Error if reading beyond buffer bounds
     */
    readFloat64(): number;
    /**
     * Sets the current read position in the buffer.
     * @param position - The new position to set
     */
    setPosition(position: number): void;
    /**
     * Checks if the current position is at the end of the buffer.
     * @returns True if at the end of the buffer, false otherwise
     */
    isEnd(): boolean;
    /**
     * Gets the current position in the buffer.
     * @returns The current position
     */
    get currentPosition(): number;
    /**
     * Gets the total length of the buffer.
     * @returns The buffer length in bytes
     */
    get length(): number;
    /**
     * Throws an error when attempting to read beyond buffer bounds.
     * @param position - The position that caused the error
     * @throws Error with details about the out of range access
     */
    private throwOutOfRangeError;
}
