import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; import { ErrorObservable } from 'rxjs/observable/ErrorObservable'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import 'rxjs/add/observable/throw'; import 'rxjs/add/observable/of'; import { JsonApiModel } from '../models/json-api.model'; import { JsonApiQueryData } from '../models/json-api-query-data'; import { DatastoreConfig } from '../interfaces/datastore-config.interface'; export declare type ModelType = { new (datastore: JsonApiDatastore, data: any): T; }; export declare class JsonApiDatastore { protected http: HttpClient; private _headers; private _store; private toQueryString; private readonly getDirtyAttributes; protected config: DatastoreConfig; constructor(http: HttpClient); /** @deprecated - use findAll method to take all models **/ query(modelType: ModelType, params?: any, headers?: Headers, customUrl?: string): Observable; findAll(modelType: ModelType, params?: any, headers?: Headers, customUrl?: string): Observable>; findRecord(modelType: ModelType, id: string, params?: any, headers?: Headers, customUrl?: string): Observable; createRecord(modelType: ModelType, data?: any): T; private static getDirtyAttributes(attributesMetadata); saveRecord(attributesMetadata: any, model: T, params?: any, headers?: Headers, customUrl?: string): Observable; deleteRecord(modelType: ModelType, id: string, headers?: Headers, customUrl?: string): Observable; peekRecord(modelType: ModelType, id: string): T | null; peekAll(modelType: ModelType): T[]; headers: Headers; protected buildUrl(modelType: ModelType, params?: any, id?: string, customUrl?: string): string; protected getRelationships(data: any): any; protected isValidToManyRelation(objects: Array): boolean; protected buildSingleRelationshipData(model: JsonApiModel): any; protected extractQueryData(body: any, modelType: ModelType, withMeta?: boolean): T[] | JsonApiQueryData; deserializeModel(modelType: ModelType, data: any): T; protected extractRecordData(res: HttpResponse, modelType: ModelType, model?: T): T; protected handleError(error: any): ErrorObservable; protected parseMeta(body: any, modelType: ModelType): any; /** @deprecated - use buildHeaders method to build request headers **/ protected getOptions(customHeaders?: Headers): any; protected buildHeaders(customHeaders?: Headers): HttpHeaders; private _toQueryString(params); addToStore(modelOrModels: JsonApiModel | JsonApiModel[]): void; protected resetMetadataAttributes(res: T, attributesMetadata: any, modelType: ModelType): T; protected updateRelationships(model: T, relationships: any): T; protected readonly datastoreConfig: DatastoreConfig; protected transformSerializedNamesToPropertyNames(modelType: ModelType, attributes: any): any; protected getModelPropertyNames(model: JsonApiModel): any; }