import { type RenderDevice, type RenderDeviceInfo } from "./RenderDevice";
export type RendererFeature = "basic-rendering" | "render-targets" | "pixel-readback" | "postprocess-ldr" | "bounded-pbr-materials" | "shadow-maps" | "contact-shadows" | "spot-shadow-maps" | "point-shadow-maps" | "depth-textures" | "hdr-render-targets" | "hdr-image-based-lighting" | "production-pbr-parity" | "gpu-timing" | "webgpu-compute";
export interface RendererFeatureStatus {
    readonly feature: RendererFeature;
    readonly supported: boolean;
    readonly reason?: string;
}
export interface RendererFeatureReport {
    readonly backend: RenderDeviceInfo["backend"];
    readonly supported: readonly RendererFeature[];
    readonly blocked: readonly RendererFeatureStatus[];
    readonly statuses: readonly RendererFeatureStatus[];
}
export declare function createRendererFeatureReport(device: Pick<RenderDevice, "info">): RendererFeatureReport;
export declare function assertRendererFeatures(device: Pick<RenderDevice, "info">, requiredFeatures: readonly RendererFeature[]): RendererFeatureReport;
export declare function rendererFeatureCatalog(): readonly RendererFeature[];
//# sourceMappingURL=RendererFeatureGates.d.ts.map