import '../../../../assert/js/assert.js';
import '../../../../globals.js';
/**
 * Handle resources and settings connected to a GPUDevice
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import { ByteEncoder, PreferredCanvasFormat } from '../../imports.js';
import TinyEmitter from '../../../../axon/js/TinyEmitter.js';
export type DeviceContextDeviceOptions = {
    maxLimits?: boolean;
    timestampQuery?: boolean;
    highPerformance?: boolean;
};
export default class DeviceContext {
    device: GPUDevice;
    readonly preferredCanvasFormat: PreferredCanvasFormat;
    readonly preferredStorageFormat: 'bgra8unorm' | 'rgba8unorm';
    readonly lostEmitter: TinyEmitter<[]>;
    constructor(device: GPUDevice);
    createBuffer(size: number, flags?: number): GPUBuffer;
    createDataBuffer(data: ArrayBufferView): GPUBuffer;
    createU32Buffer(data: number[]): GPUBuffer;
    createI32Buffer(data: number[]): GPUBuffer;
    createF32Buffer(data: number[]): GPUBuffer;
    createByteEncoderBuffer(encoder: ByteEncoder): GPUBuffer;
    createMapReadableBuffer(size: number): GPUBuffer;
    createQueryBuffer(size: number): GPUBuffer;
    createQuerySet(capacity: number): GPUQuerySet;
    getCanvasContext(canvas: HTMLCanvasElement, colorSpace: 'srgb' | 'display-p3'): GPUCanvasContext;
    static getDevice(providedOptions?: DeviceContextDeviceOptions): Promise<GPUDevice | null>;
    dispose(): void;
    static getMappedFloatArray(buffer: GPUBuffer): Promise<Float32Array>;
    static getMappedUintArray(buffer: GPUBuffer): Promise<Uint32Array>;
    static getMappedIntArray(buffer: GPUBuffer): Promise<Int32Array>;
    static getMappedByteArray(buffer: GPUBuffer): Promise<Uint8Array>;
    static getMappedArrayBuffer(buffer: GPUBuffer): Promise<ArrayBuffer>;
}
//# sourceMappingURL=DeviceContext.d.ts.map