import type { IWasmTypedArray } from "./IWasmTypedArray";
/**
 * Typed array
 */
export type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
/**
 * Typed array constructor
 */
export type TypedArrayConstructor<T extends TypedArray> = {
    new (buffer: ArrayBuffer, byteOffset?: number, length?: number): T;
};
/**
 * Safe typed array pointer for WASM
 */
export declare class WasmTypedArray<T extends TypedArray> implements IWasmTypedArray<T> {
    private readonly _memory;
    private readonly _byteOffset;
    private readonly _length;
    private _array;
    /**
     * Create a safe typed array pointer for WASM
     *
     * @param typedArrayConstructor typed array constructor
     * @param memory WebAssembly memory
     * @param byteOffset byte offset of the typed array
     * @param length length of the typed array
     */
    constructor(typedArrayConstructor: TypedArrayConstructor<T>, memory: WebAssembly.Memory, byteOffset: number, length: number);
    /**
     * Get the typed array
     */
    get array(): T;
}
