export interface SkenoraGpu { requestAdapter(options?: Readonly>): Promise; getPreferredCanvasFormat(): string; } export interface SkenoraGpuAdapter { readonly features: Iterable; readonly limits: Readonly>; requestDevice(): Promise; } export interface SkenoraGpuDevice { readonly queue: SkenoraGpuQueue; readonly lost: Promise>; readonly features: Iterable; readonly limits: Readonly>; createBuffer(descriptor: Readonly>): SkenoraGpuBuffer; createShaderModule(descriptor: Readonly>): SkenoraGpuShaderModule; createComputePipelineAsync(descriptor: Readonly>): Promise; createRenderPipelineAsync(descriptor: Readonly>): Promise; createBindGroup(descriptor: Readonly>): SkenoraGpuBindGroup; createCommandEncoder(descriptor?: Readonly>): SkenoraGpuCommandEncoder; destroy(): void; } export interface SkenoraGpuQueue { writeBuffer(buffer: SkenoraGpuBuffer, offset: number, data: ArrayBufferView): void; submit(commands: readonly unknown[]): void; onSubmittedWorkDone(): Promise; } export interface SkenoraGpuBuffer { readonly size: number; mapAsync(mode: number, offset?: number, size?: number): Promise; getMappedRange(offset?: number, size?: number): ArrayBuffer; unmap(): void; destroy(): void; } export interface SkenoraGpuShaderModule { getCompilationInfo?(): Promise[]; }>>; } export interface SkenoraGpuPipeline { getBindGroupLayout(index: number): unknown; } export interface SkenoraGpuBindGroup { } export interface SkenoraGpuCommandEncoder { beginComputePass(descriptor?: Readonly>): SkenoraGpuComputePass; beginRenderPass(descriptor: Readonly>): SkenoraGpuRenderPass; copyBufferToBuffer(source: SkenoraGpuBuffer, sourceOffset: number, destination: SkenoraGpuBuffer, destinationOffset: number, size: number): void; finish(): unknown; } export interface SkenoraGpuComputePass { setPipeline(pipeline: SkenoraGpuPipeline): void; setBindGroup(index: number, bindGroup: SkenoraGpuBindGroup): void; dispatchWorkgroups(x: number, y?: number, z?: number): void; end(): void; } export interface SkenoraGpuRenderPass { setPipeline(pipeline: SkenoraGpuPipeline): void; setBindGroup(index: number, bindGroup: SkenoraGpuBindGroup): void; draw(vertexCount: number, instanceCount?: number): void; end(): void; } export interface SkenoraGpuCanvasContext { configure(descriptor: Readonly>): void; unconfigure(): void; getCurrentTexture(): Readonly<{ createView(): unknown; }>; } export declare const GPU_BUFFER_USAGE: Readonly<{ MAP_READ: 1; COPY_SRC: 4; COPY_DST: 8; UNIFORM: 64; STORAGE: 128; }>; export declare const GPU_TEXTURE_USAGE: Readonly<{ RENDER_ATTACHMENT: 16; }>; export declare const GPU_MAP_MODE: Readonly<{ READ: 1; }>; //# sourceMappingURL=webgpu-types.d.ts.map