import { type ProductionGLTFRenderMetadata as ProductionGLTFRenderMetadata } from "@aura3d/engine/assets/browser";
import { summarizeProductionWebGL2Proof as summarizeProductionWebGL2Proof, type ProductionRenderProof as ProductionRenderProof, type ProductionWebGPUReport } from "@aura3d/engine/rendering";
export interface ProductionExampleAsset {
    readonly id: string;
    readonly label: string;
    readonly file: string;
    readonly role: "primary" | "secondary";
}
export interface ProductionExampleEnvironment {
    readonly id: string;
    readonly label: string;
    readonly file: string;
    readonly exposure: number;
    readonly intensity: number;
    readonly rotation: number;
}
export interface ProductionExampleDefinition {
    readonly appId: string;
    readonly sceneId: string;
    readonly title: string;
    readonly workflow: string;
    readonly assets: readonly ProductionExampleAsset[];
    readonly environment: ProductionExampleEnvironment;
    readonly postprocess: boolean;
    readonly webgpuReport: boolean;
    readonly expectedPostprocessChain: readonly string[];
}
export interface ProductionExampleRuntimeMetrics {
    readonly appId: string;
    readonly sceneId: string;
    readonly workflow: string;
    readonly rendererBackend: "webgl2";
    readonly assetIds: readonly string[];
    readonly primaryAssetId: string;
    readonly hdrEnvironmentId: string;
    readonly drawCalls: number;
    readonly triangleCount: number;
    readonly materialCount: number;
    readonly textureCount: number;
    readonly textureMemoryEstimate: number;
    readonly postprocessChain: readonly string[];
    readonly frameTimeMs: number;
    readonly warnings: readonly string[];
}
export interface ProductionExampleRuntime {
    readonly status: "loading" | "ready" | "error";
    readonly appId: string;
    readonly sceneId: string;
    readonly error?: string;
    readonly rendererBackend?: "webgl2";
    readonly runtime?: ProductionExampleRuntimeMetrics;
    readonly metadata?: ProductionGLTFRenderMetadata;
    readonly secondaryMetadata?: readonly ProductionGLTFRenderMetadata[];
    readonly proof?: ProductionRenderProof;
    readonly proofSummary?: ReturnType<typeof summarizeProductionWebGL2Proof>;
    readonly webgpu?: ProductionWebGPUReport;
    readonly interactionCount: number;
    readonly lastInteraction?: string;
}
declare global {
    interface Window {
        __a3dProductionExample?: ProductionExampleRuntime;
    }
}
export declare function runProductionExample(definition: ProductionExampleDefinition): Promise<void>;
//# sourceMappingURL=ProductionExampleRuntime.d.ts.map