import { Scene } from "@aura3d/scene";
import { Renderer, type CameraLike, type ProductionRendererInput, type RuntimeParityFrameRenderResult, type RenderDeviceDiagnostics, type RendererAnimationLoop, type RendererFrameCaptureWithMetadata, type RendererInput, type RendererOptions, type RenderItem, type RenderSource, type ResizeToDisplayOptions, type ResizeToDisplayResult } from "@aura3d/rendering";
import { A3DScene } from "./A3DScene.js";
export type A3DRendererOptions = RendererOptions;
export declare class A3DRenderer {
    readonly renderer: Renderer;
    private constructor();
    static create(options?: A3DRendererOptions): Promise<A3DRenderer>;
    get device(): import("@aura3d/rendering").RenderDevice;
    resize(width: number, height: number): void;
    resizeToDisplay(options?: ResizeToDisplayOptions): ResizeToDisplayResult;
    startAnimationLoop(callback: (timeMs: number, renderer: A3DRenderer) => void): RendererAnimationLoop;
    render(input: RendererInput): RenderDeviceDiagnostics;
    render(source: A3DScene | RenderSource | Iterable<RenderItem> | Scene, camera?: CameraLike): RenderDeviceDiagnostics;
    renderAsync(input: RendererInput): Promise<RenderDeviceDiagnostics>;
    renderAsync(source: A3DScene | RenderSource | Iterable<RenderItem> | Scene, camera?: CameraLike): Promise<RenderDeviceDiagnostics>;
    renderFrame(input: ProductionRendererInput): RuntimeParityFrameRenderResult;
    captureFrame(source?: A3DScene | RenderSource | Iterable<RenderItem> | Scene, camera?: CameraLike): RendererFrameCaptureWithMetadata;
    getDiagnostics(): RenderDeviceDiagnostics;
    dispose(): void;
}
//# sourceMappingURL=A3DRenderer.d.ts.map