import type { Slide } from '../scenes'; import { PlaybackManager } from './PlaybackManager'; import type { Project } from './Project'; import { Stage, StageSettings } from './Stage'; export interface PresenterSettings extends StageSettings { name: string; fps: number; slide: string | null; } export interface PresenterInfo extends Record { currentSlideId: string | null; nextSlideId: string | null; hasNext: boolean; hasPrevious: boolean; isWaiting: boolean; count: number; index: number | null; } export declare enum PresenterState { Initial = 0, Working = 1, Aborting = 2 } export declare class Presenter { private project; get onStateChanged(): import("../events").SubscribableValueEvent; private readonly state; get onInfoChanged(): import("../events").SubscribableValueEvent; private readonly info; get onSlidesChanged(): import("../events").SubscribableValueEvent; private readonly slides; readonly stage: Stage; private readonly lock; readonly playback: PlaybackManager; private readonly status; private readonly logger; private readonly sharedWebGLContext; private abortController; private renderTime; private requestId; private requestedResume; private requestedSlide; constructor(project: Project); /** * Present the animation. * * @param settings - The presentation settings. */ present(settings: PresenterSettings): Promise; /** * Abort the ongoing presentation process. */ abort(): void; /** * Resume the presentation if waiting for the next slide. */ resume(): void; requestFirstSlide(): void; requestLastSlide(): void; requestPreviousSlide(): void; requestNextSlide(): void; requestSlide(id: string): void; private run; private reloadScenes; private loop; private request; private updateInfo; } //# sourceMappingURL=Presenter.d.ts.map