import { type Pointer } from "bun:ffi"; import type { FFISymbols } from "./ffi.js"; import type { InstanceTicker } from "./GPU.js"; import type { GPUDeviceImpl } from "./GPUDevice.js"; import { EventEmitter } from "events"; export declare class GPUBufferImpl extends EventEmitter implements GPUBuffer { readonly bufferPtr: Pointer; private readonly device; private lib; private instanceTicker; private _size; private _descriptor; private _mapState; private _pendingMap; private _mapCallback; private _mapCallbackCloseScheduled; private _mapCallbackPromiseData; private _destroyed; private _mappedOffset; private _mappedSize; private _returnedRanges; private _detachableArrayBuffers; __brand: "GPUBuffer"; label: string; ptr: Pointer; constructor(bufferPtr: Pointer, device: GPUDeviceImpl, lib: FFISymbols, descriptor: GPUBufferDescriptor, instanceTicker: InstanceTicker); private _scheduleMapCallbackClose; private _checkRangeOverlap; private _createDetachableArrayBuffer; get size(): GPUSize64; get usage(): GPUFlagsConstant; get mapState(): GPUBufferMapState; mapAsync(mode: GPUMapModeFlags, offset?: GPUSize64, size?: GPUSize64): Promise; private _validateAlignment; getMappedRangePtr(offset?: GPUSize64, size?: GPUSize64): Pointer; _getConstMappedRangePtr(offset: GPUSize64, size: GPUSize64): Pointer; getMappedRange(offset?: GPUSize64, size?: GPUSize64): ArrayBuffer; _getConstMappedRange(offset: GPUSize64, size: GPUSize64): ArrayBuffer; _detachBuffers(): void; unmap(): undefined; release(): undefined; destroy(): undefined; }