import { FtBookmark, FtCollection, FtMySearch, FtPersonalBookPreview, FtUserAssetCount, FtUserAssetLabel, FtUserAssetType } from "@fluid-topics/public-api"; import { FtReduxStore, Optional } from "@fluid-topics/ft-wc-utils"; import { UserAssetsCountService } from "../services/user-assets/UserAssetCountService"; import { PayloadAction } from "@reduxjs/toolkit"; import { UserAssetLabelsService } from "../services/user-assets/UserAssetLabelsService"; export declare const FtUserAssetsStoreName = "ft-user-assets"; export interface AssetCounts { allAsset: Record; bookmarkByMap: { [mapId: string]: number; }; } export interface FtUserAssetsState { savedSearches: Optional>; bookmarks: Optional>; assetCounts: AssetCounts; assetLabels: Array; } type FtUserAsset = FtBookmark | FtMySearch | FtCollection | FtPersonalBookPreview; declare const reducers: { setAssetCount: (state: FtUserAssetsState, action: PayloadAction<{ assetCount: FtUserAssetCount; }>) => void; clearAssetCount: (state: FtUserAssetsState) => void; setBookmarkCountByMap: (state: FtUserAssetsState, action: PayloadAction<{ count: number; mapId: string; }>) => void; clearBookmarkCountByMap: (state: FtUserAssetsState) => void; addAsset: (state: FtUserAssetsState, action: PayloadAction<{ assetType: FtUserAssetType; asset: FtUserAsset; mapId?: string; }>) => void; editAsset: (state: FtUserAssetsState, action: PayloadAction<{ assetType: FtUserAssetType; asset: FtUserAsset; }>) => void; removeAsset: (state: FtUserAssetsState, action: PayloadAction<{ assetType: FtUserAssetType; assetId: string; mapId?: string; }>) => void; }; export type FtUserAssetsStateReducers = typeof reducers; export type FtUserAssetsStore = FtReduxStore; export declare const ftUserAssetsStore: FtUserAssetsStore; export declare class UserAssetsActions { private readonly assetCountsService; private readonly assetLabelsService; private currentSession; private bookmarksAreUsed; private readonly bookmarksService; private readonly savedSearchesService; constructor(assetCountsService?: UserAssetsCountService, assetLabelsService?: UserAssetLabelsService); private reloadWhenUserSessionChanges; clearUserAssetCounts(): void; clear(): void; clearMySearches(): void; private clearMyBookmarks; reloadMySearches(): Promise; reloadBookmarks(): Promise; reloadAssetLabels(): Promise; loadAssetCount(assetType: FtUserAssetType): Promise; loadBookmarkByMapId(mapId: string): Promise; reloadAssetCount(assetType: FtUserAssetType): Promise; registerBookmarkComponent(): Promise; private updateBookmarksIfUsed; } declare global { interface Window { FluidTopicsUserAssetsActions: UserAssetsActions; } } export declare const userAssetsActions: UserAssetsActions; export {};