import { Subject } from 'rxjs/Subject'; import { Observable } from 'rxjs/Observable'; export declare abstract class DataSource { protected onChangedSource: Subject; protected onAddedSource: Subject; protected onUpdatedSource: Subject; protected onRemovedSource: Subject; abstract getAll(): Promise; abstract getElements(): Promise; abstract getSort(): any; abstract getFilter(): any; abstract getPaging(): any; abstract count(): number; refresh(): void; load(data: Array): Promise; onChanged(): Observable; onAdded(): Observable; onUpdated(): Observable; onRemoved(): Observable; prepend(element: any): Promise; append(element: any): Promise; add(element: any): Promise; remove(element: any): Promise; update(element: any, values: any): Promise; empty(): Promise; setSort(conf: Array, doEmit?: boolean): void; setFilter(conf: Array, andOperator?: boolean, doEmit?: boolean): void; addFilter(fieldConf: {}, andOperator?: boolean, doEmit?: boolean): void; setPaging(page: number, perPage: number, doEmit?: boolean): void; setPage(page: number, doEmit?: boolean): void; protected emitOnRemoved(element: any): void; protected emitOnUpdated(element: any): void; protected emitOnAdded(element: any): void; protected emitOnChanged(action: string): void; }