import { PowerPointViewerAPI, ViewerMode } from 'pptx-viewer-shared'; import { ViewerState } from '../state/viewer-state.svelte'; import { EditorState } from './editor-state.svelte'; /** * The navigation / zoom / mode / slide / element half of the imperative * `PowerPointViewer` instance API. The undo/redo/save half lives in * `editing-api.ts` and the export half in `export/exporting-api.ts`. */ export type DeckApi = Omit; /** Live viewer accessors the deck API closes over (all read from viewer runes). */ export interface DeckApiDeps { editor: EditorState; viewer: ViewerState; /** User-facing zoom percent (rounded), the base every zoom step works from. */ getZoomPercent(): number; /** The viewer's resolved mode, so `getMode()` matches what the chrome shows. */ getMode(): ViewerMode; /** Enter/leave presentation mode (the same handler the ribbon button uses). */ toggleFullscreen(): void; /** Flip the host-facing `editable` flag (`setMode('edit' | 'master')`). */ setEditable(editable: boolean): void; } /** * Build the deck-level imperative API bound to live `EditorState` / * `ViewerState` runes. Extracted from `PowerPointViewer.svelte` so the * component only re-exports thin, one-line bindings (Svelte requires the * component's own `export`s for its instance API, but the bodies can live * elsewhere), matching `createEditingApi` / `createExportingApi`. */ export declare function createDeckApi(deps: DeckApiDeps): DeckApi; //# sourceMappingURL=deck-api.d.ts.map