import { native_ } from './Constants';
import { GPUBuffer } from './GPUBuffer';
import { GPUCommandBuffer } from './GPUCommandBuffer';
import { GPUComputePassEncoder } from './GPUComputePassEncoder';
import { GPUQuerySet } from './GPUQuerySet';
import { GPURenderPassEncoder } from './GPURenderPassEncoder';
import { GPUImageCopyBuffer, GPUImageCopyTexture, GPURenderPassColorAttachment, GPURenderPassDepthStencilAttachment, GPURenderPassTimestampWrites } from './Interfaces';
import { GPUExtent3D } from './Types';
export declare class GPUCommandEncoder {
    [native_]: any;
    get label(): any;
    static fromNative(encoder: any): GPUCommandEncoder;
    beginComputePass(descriptor?: {
        label?: string;
        timestampWrites?: {
            beginningOfPassWriteIndex: number;
            endOfPassWriteIndex: number;
            querySet: GPUQuerySet;
        };
    }): GPUComputePassEncoder;
    beginRenderPass(descriptor: {
        colorAttachments: (null | GPURenderPassColorAttachment)[];
        depthStencilAttachment?: GPURenderPassDepthStencilAttachment;
        label?: string;
        maxDrawCount?: number;
        occlusionQuerySet?: GPUQuerySet;
        timestampWrites?: GPURenderPassTimestampWrites;
    }): GPURenderPassEncoder;
    clearBuffer(buffer: GPUBuffer, offset?: number, size?: number): void;
    copyBufferToBuffer(source: GPUBuffer, sourceOffset: number, destination: GPUBuffer, destinationOffset: number, size: number): void;
    copyBufferToTexture(source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
    copyTextureToBuffer(source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D): void;
    copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
    finish(descriptor?: {
        label?: string;
    }): GPUCommandBuffer;
    insertDebugMarker(markerLabel: string): void;
    popDebugGroup(): void;
    pushDebugGroup(groupLabel: string): void;
    resolveQuerySet(querySet: GPUQuerySet, firstQuery: number, queryCount: number, destination: GPUBuffer, destinationOffset: number): void;
    writeTimestamp(querySet: GPUQuerySet, queryIndex: number): void;
}
