declare namespace datasources { interface IDataClassPrivate { datastore: ICatalog; className: string; exposed?: boolean; attributes: { [attributeName: string]: IDataClassAttribute; }; collectionName: string; cache: EntityCache; keys: string[]; } type IGetEntitySettings = Partial<{ expand: string; filterAttributes: string; }>; class DataClass { _private: IDataClassPrivate; constructor(rawDef: IDetailedDataClass, owner: ICatalog); getName(): string; getCollectionName(): string; getDataStore(): ICatalog; getAttribute(attname: string): IDataClassAttribute | null; getAllAttributes(): { [attributeName: string]: IDataClassAttribute; }; getEntity(primKey: string, settings?: IGetEntitySettings): Promise; query( queryStr: string, settings?: IEntitySelectionSettings, ): EntitySelection; getDistinctValues( attName: string, maxElems?: number, queryFilter?: string, ): Promise; allEntities(settings: IEntitySelectionSettings): EntitySelection; newEmptySelection(): EntitySelection; getCacheDelay(): number; getCache(): EntityCache; getKeys(): string[]; isExposed(): boolean; supportJSONEntityKey(): boolean; } }