import { type RenderDevice } from "./RenderDevice";
export interface RenderPassContext {
    readonly device: RenderDevice;
    readonly width: number;
    readonly height: number;
}
export interface RenderPass {
    readonly name: string;
    readonly reads: readonly string[];
    readonly writes: readonly string[];
    readonly allowReadWriteHazards?: readonly string[];
    execute(context: RenderPassContext): void;
    executeAsync?(context: RenderPassContext): Promise<void>;
}
export declare abstract class BaseRenderPass implements RenderPass {
    readonly name: string;
    readonly reads: readonly string[];
    readonly writes: readonly string[];
    readonly allowReadWriteHazards: readonly string[];
    constructor(name: string, reads?: readonly string[], writes?: readonly string[], allowReadWriteHazards?: readonly string[]);
    abstract execute(context: RenderPassContext): void;
}
//# sourceMappingURL=RenderPass.d.ts.map