/** * CanvasController * * Manages canvas (page) selection, navigation, and lifecycle. * Handles canvas change effects including state resets. */ import type { ViewerStateStores } from "../viewerState"; import type { ViewerDerivedStores } from "../viewerDerived"; import type { ViewerEventEmitter } from "../../../core/types/events"; export type CanvasControllerConfig = { state: ViewerStateStores; derived: ViewerDerivedStores; emitEvent: ViewerEventEmitter; emitStateChange: () => void; preserveViewport?: boolean; }; export type CanvasController = { getCanvasIndex: () => number; getCanvasId: () => string | null; getCanvasCount: () => number; setCanvasByIndex: (index: number) => void; setCanvasById: (canvasId: string) => void; setupCanvasEffects: () => (() => void)[]; }; export declare const createCanvasController: ({ state, derived: derivedStores, emitEvent, emitStateChange, preserveViewport, }: CanvasControllerConfig) => CanvasController;