import { BehaviorSubject, Observable } from "rxjs"; import { DCSerializable, IDCSerializable, IDCSerializableClass } from './DCSerializable'; import { IDCDataExchange, IDCUpdatePair } from "./IDCDataExchange"; import { IDCColDefs, IDCFcDefs, IDCSchema } from "./IDCSchema"; import { GuidRegistry } from "./GuidRegistry"; import { IDCAssociationManager } from "./IDCAssociationManager"; export interface IndexedDataSet { [index: string]: T; } export interface IDCDataModelOptions { debug: (msg: string) => void; version: string; } export declare class DCDataModel implements IDCAssociationManager { protected tables: { [index: string]: IndexedDataSet; }; protected tableSubjects: { [index: string]: BehaviorSubject>; }; protected tableSubjectArrays: { [index: string]: Observable; }; protected itemSubjects: { [id: string]: BehaviorSubject; }; protected debug: (message: any, ...args: any[]) => void; protected sortedArrays: any; protected types: { [index: string]: IDCSerializableClass; }; protected referenceRebuilds: IndexedDataSet; schema: IDCSchema; schemaVersion: string; protected guidRegistry: GuidRegistry; constructor(typeList: IDCSerializableClass[], opts?: Partial); protected buildSchema(typeList: IDCSerializableClass[]): void; protected deleteTableData(deleteSet: IDCSerializable[] | IDCUpdatePair[], table: string): void; loadData(exch: IDCDataExchange): void; protected loadTableData(newData: IDCSerializable[] | IDCUpdatePair[], tableName: string): void; getColumns(t: DCSerializable): IDCColDefs; getColumns(t: string): IDCColDefs; getForeignColumns(obj: DCSerializable): IDCFcDefs; getForeignObject(obj: DCSerializable, property: string, fkid: string): DCSerializable; getItem(id: string, table?: string): DCSerializable; getItemObservable(id: string, table?: string): Observable; getIdMatches(partial: string): string[]; getNewItem(table: string, id?: string): DCSerializable; getShortId(guid: string): string; getTable(table: string | typeof DCSerializable): IndexedDataSet; getTableObservable(table: string | typeof DCSerializable): Observable>; getTableObservableArray(table: string | typeof DCSerializable): Observable; getTableSerialized(table: string): IndexedDataSet; newGuid(): string; queueReferenceRebuild(obj: DCSerializable): void; protected rebuildReferences(): void; shortGuid(guid: string): string; protected sortArrays(table: string): void; protected sortArray(table: string, sortProp: string): void; /** * sortedArray * * The data model maintains a set of sorted object arrays per request. Return the * specified one * @param table * @param sortProp * @returns DCSerializable[] */ sortedArray(table: string, sortProp?: string): DCSerializable[]; }