import { writable } from 'svelte/store'; import type { ResolvedAnnotation } from '../../iiif/annotationResolver'; import { type ImageFilters } from '../../core/types/filters'; import type { ViewBox } from '../../core/types/viewer'; import type { ViewerConfig } from '../../core/types/config'; import type { ViewerPlugin } from '../../core/types/plugin'; export type IIIFSearchAnnotation = ResolvedAnnotation & { canvasId?: string; }; export type ViewerStateStores = { manifestId: ReturnType>; collectionId: ReturnType>; config: ReturnType>; plugins: ReturnType>; selectedCanvasIndex: ReturnType>; selectedMediaIndex: ReturnType>; showThumbnails: ReturnType>; showContents: ReturnType>; showCollection: ReturnType>; showMetadata: ReturnType>; showSearch: ReturnType>; showAnnotations: ReturnType>; keepAnnotationsVisible: ReturnType>; showTools: ReturnType>; showSettings: ReturnType>; showLayers: ReturnType>; layoutMode: ReturnType>; layerOpacities: ReturnType>>; annotationMode: ReturnType>; searchQuery: ReturnType>; selectedSearchResultId: ReturnType>; activeAnnotationId: ReturnType>; hoverAnnotationId: ReturnType>; imageFilters: ReturnType>; viewBox: ReturnType>; zoom: ReturnType>; rotation: ReturnType>; mediaTime: ReturnType>; mediaDuration: ReturnType>; userAnnotations: ReturnType>>; externalAnnotations: ReturnType>>; /** * Ids of annotations the user has deleted, keyed by canvas. Manifest and * external annotations are re-derived from the fetched IIIF, so dropping one * from `userAnnotations` is not enough to make it stay gone. */ removedAnnotationIds: ReturnType>>; iiifSearchResults: ReturnType>; }; export declare const createViewerState: (initial?: Partial<{ manifestId: string; config: ViewerConfig; plugins: ViewerPlugin[]; selectedCanvasIndex: number; layoutMode: "single" | "two-page" | "continuous" | "gallery"; rotation: number; viewBox: ViewBox | null; }>) => ViewerStateStores;