/// <reference types="@webgpu/types" />
import type { RenderPass, RenderPassContext, RenderPassFlags, RenderPassInputSlot, RenderPassOutputSlot } from '../core/types.js';
export interface FullscreenPassOptions extends RenderPassFlags {
    enabled?: boolean;
    needsSwap?: boolean;
    input?: RenderPassInputSlot;
    output?: RenderPassOutputSlot;
    filter?: GPUFilterMode;
}
/**
 * Shared base for fullscreen texture sampling passes.
 */
export declare abstract class FullscreenPass implements RenderPass {
    enabled: boolean;
    needsSwap: boolean;
    input: RenderPassInputSlot;
    output: RenderPassOutputSlot;
    clear: boolean;
    clearColor: [number, number, number, number];
    preserve: boolean;
    private readonly filter;
    private device;
    private sampler;
    private bindGroupLayout;
    private shaderModule;
    private readonly pipelineByFormat;
    private bindGroupByView;
    protected constructor(options?: FullscreenPassOptions);
    protected abstract getProgram(): string;
    protected abstract getVertexEntryPoint(): string;
    protected abstract getFragmentEntryPoint(): string;
    protected invalidateFullscreenCache(): void;
    private ensureResources;
    setSize(width: number, height: number): void;
    protected renderFullscreen(context: RenderPassContext): void;
    render(context: RenderPassContext): void;
    dispose(): void;
}
//# sourceMappingURL=FullscreenPass.d.ts.map