import { Observable } from "rxjs/Observable"; import "rxjs/add/operator/take"; import { ID } from "@void-zero/types"; export interface DataLoaderConfig { name: string; dataType?: any; load?: any; loadMultiple?: any; hasLocal?: boolean; hasSingleLocal?: boolean; hasMultipleLocal?: boolean; } export interface DataLoaderOptions { id?: ID; params?: any; from?: number; to?: number; willCache?: boolean; fromCache?: boolean; } export declare class DataLoader { readonly dataType: any; readonly hasLocal: boolean; hasSingleLocal?: boolean; hasMultipleLocal?: boolean; private _localStore; private _maxCacheLife; private _itemMap; private _itemMultipleMap; private _allItems; private _load; private _loadMultiple; private _loading; constructor(config: DataLoaderConfig); fetchSingle(options: O): Observable; fetchMultiple(options: R): Observable; static reduceOptionsToID(options: any, prefix?: string): ID; }