import { ItemSO, Pager, SelectionType, SelectionFlags, KeyHandler, MergeFn } from '../types'; import { ds } from '../ds/'; export declare const DESCRIPTOR = "$d"; export declare const INDEX = "$index"; export declare const PREV_KEY = "$prev_key"; export declare const PREV_PAGE = "$prev_page"; export declare const PREV_ISTATE = "$prev_istate"; export declare function shallowCopyTo(target: T, src: T): T; export declare function resolveNextPageIndex(page: number, idx: number, pager: Pager): number; export declare type FetchFn = (req: ds.ParamRangeKey, pager: Pager) => void; export interface PagerOptions { pageSize: number; descriptor: any; desc?: boolean; multiplier?: number; multiplier_conditional?: boolean; keyProperty?: string; $keyProperty?: string; kh?: KeyHandler; merge_fn?: MergeFn; page?(next: boolean, pager: Pager): any; /** create Pojo With Defaults */ createObservable(so: ItemSO, idx: number): T; fetch: FetchFn; onSelect(message: T, flags: SelectionFlags): number; onAdd?(message: T, main: boolean, latest: boolean): any; onUpdate?(message: T, main: boolean, update: T): boolean; onRemove?(message: T, main: boolean): any; onRemoveArray?(array: Array, main: boolean): any; onPopulate?(message: T, main: boolean, target: T, index: number): any; } export declare function nullifyVprops(so: ItemSO, descriptor: any): ItemSO | undefined; export declare class PojoStore { options: PagerOptions; pager: Pager; multiplier: number; multiplier_conditional: boolean; k: string; $k: string; startObj: T; array: Array; mainArray: Array; private fnMergeFrom; constructor(fetchedArray: Array, options: PagerOptions); getLastSeenObj(): T | null; isEmpty(): boolean; size(): number; isMainArray(): boolean; isSameArray(array: any): boolean; repaint(): number; populate(type: SelectionType, flags: SelectionFlags, idxSelected: number): number; $populate(type: SelectionType, flags: SelectionFlags, main: boolean, idxSelected: number, page: number): any; select(current: T, flags: SelectionFlags, idx?: number): number; $select(current: T, flags: SelectionFlags, idx: number, page: number, selectWithoutPopulate: boolean): number; populateAndSelect(storeIdx: number, flags: SelectionFlags): void; notifyAndSelect(storeIdx: number, flags: SelectionFlags): void; notify(type?: SelectionType, flags?: SelectionFlags): void; /** * Add the entity and select it afterwards. */ addAndSelect(entity: T, latest: boolean, flags: SelectionFlags): void; get(index: number): T; getStoreIndex(selected: T): number; $getStoreIndex(index: number): number; getSelectedOriginal(): T | null; getOriginal(selected: T): T; remove(index: number): T; clear(): void; add(entity: T, latest: boolean, mainOnly: boolean): void; addAll(array: Array, latest: boolean, mainOnly: boolean): boolean; /** * Resets the internal arrays and does not notify nor call onRemoveArray */ reinit(array: Array): PojoStore; /** * Resets the internal arrays and calls the listener methods. */ reset(array: Array, notify?: boolean): void; /** * Simply sets the array. No notifications/etc */ setArray(array: Array): void; /** * Sets the array and notifies. */ replace(array: Array, type?: SelectionType, flags?: SelectionFlags): void; /** * Returns true if an item was removed. */ update(updateArray: Array): boolean; getStartObj(): T | null; newRangeKeyForReload(): ds.ParamRangeKey; $newRangeKeyForReload(desc: boolean): ds.ParamRangeKey; newRangeKeyForLoadNewer(): ds.ParamRangeKey; newRangeKeyForLoadOlder(): ds.ParamRangeKey; requestNewer(): void; requestOlder(): void; reload(): void; $reload(desc: boolean): void; addNewer(array: Array): void; addOlder(array: Array): void; pagePrevOrLoad(flags: number): number; pageNextOrLoad(flags: number): number; cbFetchSuccess(array: Array): void; cbFetchFailed(errmsg: any): void; } export declare function bindFetchSuccess(pstore: PojoStore): any; export declare function bindFetchFailed(pstore: PojoStore): any;