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