import { type ProductionWebGL2RendererOptions } from './ProductionWebGL2Renderer';
import type { RenderDeviceDiagnostics } from "../RenderDevice";
import type { ProductionRendererBackend, ProductionRenderProof, ProductionRendererFeature, ProductionRendererInput, CurrentRoutesProductionRenderer, RuntimeParityFrameRenderResult } from './ProductionRendererTypes';
export interface ProductionRuntimeRendererOptions extends ProductionWebGL2RendererOptions {
    readonly backend?: ProductionRuntimeRendererBackendPreference;
}
export type ProductionRuntimeRendererBackendPreference = "webgl2" | "webgpu" | "auto";
export interface ProductionRuntimeRendererBackendSelection {
    readonly requestedBackend: ProductionRuntimeRendererBackendPreference;
    readonly selectedBackend: ProductionRendererBackend;
    readonly asyncRequired: boolean;
    readonly fallback: boolean;
    readonly reason: string;
}
export declare class ProductionRuntimeRenderer implements CurrentRoutesProductionRenderer {
    private readonly renderer;
    readonly backend: ProductionRendererBackend;
    readonly backendSelection: ProductionRuntimeRendererBackendSelection;
    private constructor();
    static create(options: ProductionRuntimeRendererOptions): Promise<ProductionRuntimeRenderer>;
    renderInteractiveFrame(input: ProductionRendererInput): RuntimeParityFrameRenderResult;
    renderFrame(input: ProductionRendererInput): RuntimeParityFrameRenderResult;
    resize(width: number, height: number): void;
    captureProof(input: ProductionRendererInput): ProductionRenderProof;
    renderImportedAsset(input: ProductionRendererInput): ProductionRenderProof;
    renderInteractiveFrameAsync(input: ProductionRendererInput): Promise<RuntimeParityFrameRenderResult>;
    renderFrameAsync(input: ProductionRendererInput): Promise<RuntimeParityFrameRenderResult>;
    captureProofAsync(input: ProductionRendererInput): Promise<ProductionRenderProof>;
    renderImportedAssetAsync(input: ProductionRendererInput): Promise<ProductionRenderProof>;
    getFeatures(): readonly ProductionRendererFeature[];
    getDiagnostics(): RenderDeviceDiagnostics;
    dispose(): void;
}
export declare function createProductionRuntimeRenderer(options: ProductionRuntimeRendererOptions): Promise<ProductionRuntimeRenderer>;
export declare function resolveProductionRuntimeRendererBackend(options: Pick<ProductionRuntimeRendererOptions, "backend" | "webgpu">): ProductionRuntimeRendererBackendSelection;
//# sourceMappingURL=ProductionRuntimeRenderer.d.ts.map