import { EditorController } from '../editor/editor-controller.svelte'; import { EditorState } from '../editor/editor-state.svelte'; import { PresentationController, PresenterSession } from '../presentation'; import { PresentationLoader } from './presentation-loader.svelte'; import { ViewerOptionsState } from './viewer-options.svelte'; import { ViewerParityUiState } from './viewer-parity-ui.svelte'; import { ViewerState } from './viewer-state.svelte'; import { ViewportHandlers } from './viewport-handlers'; export interface PresentationClusterDeps { editor: EditorState; viewer: ViewerState; loader: PresentationLoader; parityUi: ViewerParityUiState; controller: EditorController; /** The audience-display link, driven by the B/W blackout and Ctrl+M ink keys. */ presenterSession: PresenterSession; /** File > Options, read for Advanced > "End with black slide". */ optionsState: ViewerOptionsState; getEditingActive(): boolean; getStageHolderEl(): HTMLDivElement | undefined; getRootEl(): HTMLDivElement | undefined; } export interface PresentationCluster extends ViewportHandlers { presentation: PresentationController; } /** * Presentation-mode playback (click-stepped element animations + slide * transitions), the rehearse-timer effects, and the fullscreen/keyboard * viewport handlers. Split out of `createViewerState` to keep that file * under the repo's file-size budget. Named `use*`, not `build*`: it * registers several `$effect`s of its own (rehearse timer, annotations), * not just constructed objects. */ export declare function usePresentationCluster(deps: PresentationClusterDeps): PresentationCluster; //# sourceMappingURL=create-viewer-state-presentation.svelte.d.ts.map