import { Ref, ComputedRef, UnwrapNestedRefs } from 'vue'; import { FolderRetrieve, FolderFile, FileRetrieve, File, FolderFolder, Favorite, FileContentTypeEnum, Folder, MiniPage } from '../../../../types/openapi'; import { RecentFile } from '../../../types/recentFiles.types'; import { ApiStore } from './api'; export type AppName = 'admin' | 'impact'; export type SelectorType = 'content' | 'assets' | 'external_links' | 'ai_images' | 'pexels_images' | 'theme' | `multimedia-selector-${string}`; export type SortOption = 'nameAsc' | 'nameDesc' | 'modifiedAsc' | 'modifiedDesc'; export type SelectedPage = { id: string; name?: string; file: { id: File['id']; name: File['name']; }; page_index: number; permissions?: File['permissions']; thumbnail_url?: string; type: 'page'; }; export type SelectedFile = FolderFile & { type: 'file'; }; export type SelectedFolder = FolderFolder & { type: 'folder'; }; export type SelectedAsset = { id: File['id']; type: 'asset'; content_extension?: File['content_extension']; thumbnail_url?: string; content_url?: string; file?: { id: File['id']; name: File['name']; }; theme_meta?: { is_theme_logo?: boolean; theme_asset_index?: number; }; }; export type SelectedExternalLink = { id: string; url: string; thumbnail_url?: string; type: 'external_link'; content_type: 'video' | 'image'; from: 'custom' | 'pexels' | 'unsplash' | 'ai'; theme_meta?: { is_theme_logo?: boolean; theme_asset_index?: number; }; }; export type ContentSelectorSelectedItem = SelectedPage | SelectedFile | SelectedAsset | SelectedExternalLink; export type BrowserSectionType = 'all' | 'favorites' | 'recent' | 'trash'; export type FolderFileWithFolderId = File & { folder_id?: string; }; export type FolderItemWithFolderId = (FolderFileWithFolderId & { type: 'file'; }) | (FolderFolder & { folder_id?: string; type: 'folder'; }); export type RecentFileWithFavoriteId = RecentFile & { favoriteId: string; }; export declare function isPage(item: ContentSelectorSelectedItem): item is SelectedPage; export declare function isFile(item: ContentSelectorSelectedItem): item is SelectedFile; export declare function isAsset(item: ContentSelectorSelectedItem): item is SelectedAsset; export declare function isExternalLink(item: ContentSelectorSelectedItem): item is SelectedExternalLink; export type AppStateProperties = { appName: Ref; allowedContentTypes: Ref; activeSelectorType: Ref; allowedIds: Ref; initialMetadataFilters: Ref>; allowedOriginalExtensions: Ref; search: Ref; searchMetadataFilters: Ref>; isLocalSearch: Ref; selectedSortOption: Ref; selectedItems: Ref; addedItems: Ref; selectedSection: Ref; isDragNDropEnabled: ComputedRef; selectedFiles: ComputedRef; selectedPages: ComputedRef; selectedAssets: ComputedRef; selectedExternalLinks: ComputedRef; sortedFavorites: ComputedRef; displayedFavorites: ComputedRef<(Favorite & { favoriteId: string; })[]>; displayedRecentFiles: ComputedRef; showFilteredResults: ComputedRef; displayedFiles: ComputedRef; activeFolderFolders: ComputedRef; activeFolderFiles: ComputedRef; isAdmin: ComputedRef; allowMultimediaSelectorApp: Ref; sectionPanelRef: Ref; activeFolder: Ref; activeFile: Ref; disableNoSharable: Ref; disableNoPptxData: Ref; recent: Ref; favorites: Ref>; filteredItems: Ref; allowedSelectorTypes: Ref; }; export type AppStore = AppStateProperties & { getThumbnailUrl: (file: Partial) => string | null | undefined; setAppName: (appName: AppName) => void; resetSelectedItems: () => void; resetAddedItems: () => void; setItems: (variable: 'added' | 'selected', items: ContentSelectorSelectedItem[], maxSelections?: number) => Promise; setActiveSelectorType: (s?: SelectorType) => void; setAllowedSelectorTypes: (s: SelectorType[]) => void; selectItem: (i: ContentSelectorSelectedItem) => void; handleItemClick: (item: ContentSelectorSelectedItem) => void; addItems: (position?: 'top' | 'bottom' | number) => void; deleteItems: () => void; deleteItem: (item: ContentSelectorSelectedItem) => void; setSectionPanelRef: (element: HTMLElement | null) => void; selectAllFiles: (selection: SelectedFile[]) => void; setDisableNoSharable: (disable: boolean) => void; setDisableNoPptxData: (disable: boolean) => void; deselectAllFiles: (f: SelectedFile[] | Pick[]) => void; deselectFile: (f: SelectedFile | Pick) => void; deselectPage: (p: SelectedPage) => void; deselectAsset: (a: SelectedAsset) => void; deselectExternalLink: (l: SelectedExternalLink) => void; deselectItem: (item: ContentSelectorSelectedItem) => void; deselectFilePages: (f: Pick) => void; setAllowedIds: (ids: File['id'][]) => void; setSelectedSection: (section: BrowserSectionType) => void; setSearchQuery: (searchQuery: string) => void; setAllowedOriginalExtensions: (extensions: string[]) => void; setSearchMetadataFilters: (filters: Record) => void; setSortOption: (sortOption: SortOption) => void; setFavorites: (favorites: Record) => void; setRecentFiles: (recentFiles: RecentFile[]) => void; setFilteredItems: (filteredItems: FolderItemWithFolderId[]) => void; fetchSectionData: () => Promise; setState: (newState: Partial>) => void; isItemDisabled: (item: SelectedFile | SelectedFolder | SelectedPage | RecentFileWithFavoriteId | FolderItemWithFolderId | FolderFileWithFolderId | (FolderFolder & { folder_id?: string; type: 'folder'; })) => boolean; setApiStore: (newApiStore: ApiStore) => void; setIsLocalSearch: (isLocal: boolean) => void; filterLocalItems: (query: string, filters: Record) => void; }; export default function (apiStore?: ApiStore): AppStore;