import type { PreviewAspectRatio, PreviewBackendType } from '../models/types';
import type { TimelinePreviewBackend, TimelinePreviewBackendCallbacks } from './previewBackend';
interface TimelinePreviewRuntimeControllerOptions {
    createBackendCallbacks: (callbackToken: number) => TimelinePreviewBackendCallbacks;
    createBackend: (resolvedBackend: Exclude<PreviewBackendType, 'auto'>, callbacks: TimelinePreviewBackendCallbacks) => TimelinePreviewBackend;
    resolveConfiguredBackend: (runtimeOverride: Exclude<PreviewBackendType, 'auto'> | null) => Exclude<PreviewBackendType, 'auto'>;
}
export declare class TimelinePreviewRuntimeController {
    private readonly options;
    private _previewSession?;
    private _previewMountContainer;
    private _resolvedPreviewBackend;
    private _runtimePreviewBackendOverride;
    private _activePreviewCallbackToken;
    constructor(options: TimelinePreviewRuntimeControllerOptions);
    get previewSession(): TimelinePreviewBackend | undefined;
    set previewSession(value: TimelinePreviewBackend | undefined);
    get previewMountContainer(): HTMLElement | null;
    set previewMountContainer(value: HTMLElement | null);
    get resolvedPreviewBackend(): Exclude<PreviewBackendType, 'auto'>;
    set resolvedPreviewBackend(value: Exclude<PreviewBackendType, 'auto'>);
    get runtimePreviewBackendOverride(): Exclude<PreviewBackendType, 'auto'> | null;
    set runtimePreviewBackendOverride(value: Exclude<PreviewBackendType, 'auto'> | null);
    get activePreviewCallbackToken(): number;
    set activePreviewCallbackToken(value: number);
    isActiveCallbackToken(callbackToken: number): boolean;
    resolveConfiguredPreviewBackend(): Exclude<PreviewBackendType, 'auto'>;
    createPreviewBackend(resolvedBackend?: Exclude<PreviewBackendType, 'auto'>): TimelinePreviewBackend;
    getPreviewSession(): TimelinePreviewBackend;
    hasAttachedPreview(): boolean;
    attachPreview(container: HTMLElement, aspectRatio: PreviewAspectRatio): PreviewAspectRatio;
    detachPreviewSession(): boolean;
    destroyPreviewSession(clearReference?: boolean): void;
    recreateDetachedPreviewSession(): void;
    fallbackToDom(aspectRatio: PreviewAspectRatio): {
        handled: boolean;
        aspectRatio: PreviewAspectRatio;
    };
}
export {};
