import { EmitFn, Ref, ComputedRef } from 'vue'; import { CollectionGroup, CollectionPlayer, CollectionSlide } from '../types/collection-player.type'; import { default as Swiper } from 'swiper'; import { File } from '../../../../types/openapi'; import { default as useZoom } from '../composables/zoom.use'; import { default as useNewZoom } from '../composables/new-zoom.use'; import { default as useFullscreen } from '../composables/fullscreen.use'; import { CollectionFileEntity, NodeInfo } from '../../canvas-builder/types/canvas'; import { ActionCallback, default as useKeyboardBindings } from '../composables/keyboard-bindings.use'; import { default as useSlideDirection } from '../composables/slide-direction.use'; import { useCacheNavigation } from '../composables/navigation-cache.use'; import { useAnnotationLayer } from '../composables/annotation-layer.use'; export type RenderPageAsImage = (payload: { fileId: File['id']; documentId?: File['id']; pageIndex: number; params: { width: number; } | { height: number; }; }) => Promise; export type Api = { renderPageAsImage: RenderPageAsImage; onFileEnter?: (node: NodeInfo, file: CollectionFileEntity) => void; onFileExit?: (node: NodeInfo, file: CollectionFileEntity) => void; onFilePageEnter?: (node: NodeInfo, file: CollectionFileEntity, pageIndex: number) => void; onFilePageExit?: (node: NodeInfo, file: CollectionFileEntity, pageIndex: number) => void; }; export type Options = { videoStartTime?: number; }; export type Emit = { close: []; click: [event: MouseEvent]; }; type StorePayload = { isLoading: Ref; inModal: Ref; isEditMode: Ref; data: Ref; rootElement: Ref; api: Api; emit: EmitFn; options?: Options; nodeId?: string; }; type StoreData = { isLoading: Ref; inModal: Ref; fitToWidth: Ref; isEditMode: Ref; isOpenTableOfContents: Ref; swiperElement: Ref<(HTMLElement & { swiper: Swiper; }) | null>; zoom: ReturnType; fullscreen: ReturnType; data: Ref; visibleGroups: ComputedRef; hasManyGroups: ComputedRef; activeSlide: Ref; activeGroup: Ref; setActiveSlide: (group?: CollectionGroup, slide?: CollectionSlide) => void; onSlideChange: (customEvent: CustomEvent<[swiper: Swiper]>) => void; activatePreviousGroup: () => void; activateNextGroup: () => void; toggleTableOfContents: () => void; toggleFitToWidth: () => void; allowTouchMove: (value: boolean) => void; isSwiperVisible: Ref; setSwiperVisibility: (isVisible: boolean) => void; api: Api; keyboardBindings: ReturnType; slideDirection: ReturnType; closeApp: () => void; options?: Options; cacheNavigation: ReturnType; nodeId?: string; handleKeyAction: ActionCallback; annotationLayer: ReturnType; updateSlideInSwiper: (index: number) => void; rootElement: Ref; updateResolvedData: (resolvedData: CollectionPlayer) => void; }; export declare function provideAppStore({ data, isEditMode, rootElement, api, emit, options, isLoading, nodeId, inModal, }: StorePayload): StoreData; export declare function useAppStore(): StoreData; export {};