import { ThreejsViewer, ThreejsViewerOptions, ThreejsViewerSetupData } from './Threejs';
import { PhysicalCamera } from 'three-gpu-pathtracer';
import { PathTracingRendererContainer } from '../nodes/rop/utils/pathTracing/PathTracingRendererContainer';
type OnFrameCompleted = () => Promise<void>;
interface RecordingStateOptions {
    isRecording: boolean;
    onFrameCompleted?: OnFrameCompleted;
    recordingSamplesPerFrame?: number;
}
/**
 *
 *
 * pathtracing viewers are created by adding the [PathTracingRenderer](/docs/nodes/rop/PathTracingRenderer) to a camera. They inherit from [ThreejsViewer](/docs/api/ThreejsViewer).
 *
 */
export declare class PathTracingViewer<C extends PhysicalCamera> extends ThreejsViewer<PhysicalCamera> {
    protected _renderer: PathTracingRendererContainer | undefined;
    private _debugElement;
    protected _setupFunctions(options: ThreejsViewerOptions<C>): ThreejsViewerSetupData<C> | void;
    mount(element: HTMLElement): void;
    private _isRecording;
    private _onFrameCompleted;
    private _recordingSamplesPerFrame;
    setRecordingState(options: RecordingStateOptions): void;
    updateDebugDisplay(): void;
    dispose(): void;
    protected _animateWebBound: () => void;
    protected _animateWeb(): void;
    protected _postRender(delta: number): void;
}
export {};
