import { type TypedArrayTypes } from '../intrinsics/TypedArray.mts'; import { NumberValue, BigIntValue, Value, DataBlock, UndefinedValue, type ValueEvaluator, type Mutable, type FunctionObject, type OrdinaryObject, type PlainEvaluator } from '#self'; export interface ArrayBufferObject extends OrdinaryObject { readonly ArrayBufferData: DataBlock | null; readonly ArrayBufferByteLength: number; readonly ArrayBufferDetachKey: Value; } export interface ResizableArrayBufferObject extends ArrayBufferObject { readonly ArrayBufferMaxByteLength: number; } export declare function isArrayBufferObject(o: Value): o is ArrayBufferObject; /** https://tc39.es/ecma262/#sec-allocatearraybuffer */ export declare function AllocateArrayBuffer(constructor: FunctionObject, byteLength: number, maxByteLength?: number): ValueEvaluator; /** https://tc39.es/ecma262/#sec-arraybufferbytelength */ export declare function ArrayBufferByteLength(arrayBuffer: ArrayBufferObject, _order: 'seq-cst' | 'unordered'): number; /** https://tc39.es/ecma262/#sec-arraybuffercopyanddetach */ export declare function ArrayBufferCopyAndDetach(_arrayBuffer: Value, newLength: Value, preserveResizability: 'preserve-resizability' | 'fixed-length'): ValueEvaluator; /** https://tc39.es/ecma262/#sec-isdetachedbuffer */ export declare function IsDetachedBuffer(arrayBuffer: ArrayBufferObject): boolean; /** https://tc39.es/ecma262/#sec-detacharraybuffer */ export declare function DetachArrayBuffer(arrayBuffer: Mutable, key?: Value): import("#self").ThrowCompletion | undefined; /** https://tc39.es/ecma262/#sec-issharedarraybuffer */ export declare function IsSharedArrayBuffer(_obj: Value): boolean; export declare function CloneArrayBuffer(srcBuffer: ArrayBufferObject, srcByteOffset: number, srcLength: number): ValueEvaluator; /** https://tc39.es/ecma262/#sec-getarraybuffermaxbytelengthoption */ export declare function GetArrayBufferMaxByteLengthOption(options: Value): PlainEvaluator; /** https://tc39.es/ecma262/#sec-hostresizearraybuffer */ export declare function HostResizeArrayBuffer(buffer: ArrayBufferObject, newByteLength: number): 'handled' | 'unhandled'; /** https://tc39.es/ecma262/#sec-isfixedlengtharraybuffer */ export declare function IsFixedLengthArrayBuffer(arrayBuffer: ArrayBufferObject): boolean; /** https://tc39.es/ecma262/#sec-isunsignedelementtype */ export declare function IsUnsignedElementType(type: TypedArrayTypes): boolean; /** https://tc39.es/ecma262/#sec-isbigintelementtype */ export declare function IsBigIntElementType(type: TypedArrayTypes): boolean; /** https://tc39.es/ecma262/#sec-rawbytestonumeric */ export declare function RawBytesToNumeric(type: TypedArrayTypes, rawBytes: readonly number[], isLittleEndian: boolean): BigIntValue | NumberValue; /** https://tc39.es/ecma262/#sec-getvaluefrombuffer */ export declare function GetValueFromBuffer(arrayBuffer: ArrayBufferObject, byteIndex: number, type: TypedArrayTypes, _isTypedArray: boolean, _order: 'unordered', isLittleEndian?: boolean): BigIntValue | NumberValue; /** https://tc39.es/ecma262/#sec-numerictorawbytes */ export declare function NumericToRawBytes(type: TypedArrayTypes, value: NumberValue | BigIntValue, isLittleEndian: boolean): number[]; /** https://tc39.es/ecma262/#sec-setvalueinbuffer */ export declare function SetValueInBuffer(arrayBuffer: ArrayBufferObject, byteIndex: number, type: TypedArrayTypes, value: BigIntValue | NumberValue, _isTypedArray: boolean, _order: 'seq-cst' | 'unordered' | 'init', isLittleEndian?: boolean): ValueEvaluator; //# sourceMappingURL=arraybuffer-objects.d.mts.map