import { BehaviorSubject, Observable } from 'rxjs'; import { DCDataModel, IndexedDataSet } from "./DCDataModel"; import { IDCSchema } from "./IDCSchema"; import { IDCDataExchange } from "./IDCDataExchange"; import { DCSerializable, IDCSerializable, IDCSerializableClass } from "./DCSerializable"; export interface IWebSocket { addEventListener(event: string, eventCallback: (event: any) => void): any; send(data: string): any; } export declare class DCWebSocketDataService { protected dataModel: DCDataModel; schema: IDCSchema; protected dataChange$: BehaviorSubject; protected idSearches: { [partialId: string]: Observable; }; protected dataRequested: { [tableName: string]: boolean; }; protected itemsFetched: { [id: string]: boolean; }; protected socketIsReady: boolean; protected requestQueue: IDCDataExchange[]; protected activeRequests: { [id: string]: BehaviorSubject; }; completedExchanges: IDCDataExchange[]; protected throwErrors: boolean; private socket; debug: (msg: any) => void; constructor(classList: IDCSerializableClass[], modelVersion: string, socket: IWebSocket, debug?: (msg: any) => void); addItem(sObj: DCSerializable): Observable; deleteItem(obj: DCSerializable): Observable; fetchItem(id: string, table?: string): Observable; fetchItemRecursive(id: string, table?: string): Observable; /** * Track the items that have been checked * @param id * @param table * @param checkedIds[] An array of object ids that have already been processed under the current call */ private fetchItemRecursiveKernel; fetchTable(table: string): Observable; getItem(id: string): DCSerializable; getItemMatches(partialId: string): Observable; getItemObservable(id: string, table?: string): Observable; getNewItem(table: string): DCSerializable; getNewItemT(table: typeof DCSerializable): T; getShortId(guid: string): string; getTable(table: string): IndexedDataSet; getTableObservableArray(table: string): Observable; getTableSerialized(table: string): IndexedDataSet; processServerData(data: any): void; sendExchange(obj: IDCDataExchange): Observable; protected socketSetup(socket: IWebSocket): void; updateItem(obj: DCSerializable): Observable; }