import type { NumericArray } from "@thi.ng/api";
/**
 * JS native DataView-like functionality, but tailored for using `Uint8Array` or
 * vanilla JS numeric arrays (assuming the array contains U8 values). Use
 * {@link DATAVIEW} for default implementation.
 *
 * @remarks
 * The default byte ordering used for all accessors is Little Endian, but can be
 * overriden via `isLE` args.
 *
 * **IMPORTANT:** None of the operations perform any bounds checking.
 */
export interface IDataView {
    getI8(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getU8(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getI16(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getU16(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getI32(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getU32(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getU64(data: ArrayLike<number>, addr: number, isLE?: boolean): bigint;
    getI64(data: ArrayLike<number>, addr: number, isLE?: boolean): bigint;
    getF32(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    getF64(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
    setI8(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setU8(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setI16(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setU16(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setI32(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setU32(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setI64(data: NumericArray, addr: number, val: bigint, isLE?: boolean): void;
    setU64(data: NumericArray, addr: number, val: bigint, isLE?: boolean): void;
    setF32(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
    setF64(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
}
/**
 * Indicator flag if current runtime/platform uses Little Endian byte order.
 */
export declare const IS_LE: boolean;
/**
 * {@link IDataView} implementation for Big Endian access.
 *
 * @remarks
 * **IMPORTANT:** None of the operations perform any bounds checking.
 */
export declare const DATAVIEW: IDataView;
//# sourceMappingURL=endianess.d.ts.map