import { Observable } from 'rxjs/Observable'; import { ReplaySubject } from 'rxjs/ReplaySubject'; import { MediaStore, MediaStoreGetCollectionItemsParams, MediaCollectionItem, FileItem, FileDetails } from '..'; export interface MediaCollectionFileItemDetails extends FileDetails { occurrenceKey: string; } export interface MediaCollectionFileItem extends FileItem { details: MediaCollectionFileItemDetails; } export interface MediaCollection { id: string; items: Array; } export interface CollectionCacheEntry { items: MediaCollectionItem[]; subject: ReplaySubject; isLoadingNextPage: boolean; nextInclusiveStartKey?: string; } export declare type CollectionCache = { [collectionName: string]: CollectionCacheEntry; }; export declare const collectionCache: CollectionCache; export declare class CollectionFetcher { readonly mediaStore: MediaStore; constructor(mediaStore: MediaStore); private createFileStateObserver; private populateCache; private removeFromCache; getItems(collectionName: string, params?: MediaStoreGetCollectionItemsParams): Observable; removeFile(id: string, collectionName: string, occurrenceKey?: string): Promise; loadNextPage(collectionName: string, params?: MediaStoreGetCollectionItemsParams): Promise; }