import { JsonApiResponseBody } from "../JsonApiResponseBody";
import { JsonApiDoc } from "../JsonApiDoc";
import { Model } from "../Model";
import { Map } from "../util/Map";
import { Response } from "./Response";
import { HttpClientResponse } from "../httpclient/HttpClientResponse";
export declare abstract class RetrievalResponse extends Response {
    protected modelType: any;
    protected docIndex: Map<Map<JsonApiDoc>>;
    protected modelIndex: Map<Map<Model>>;
    protected included: Model[];
    constructor(httpClientResponse: HttpClientResponse, modelType: typeof Model, responseBody: JsonApiResponseBody);
    abstract getData(): any;
    getIncluded(): Model[];
    protected abstract makeModelIndex(requested: any): void;
    private indexIncludedDocs(includedDocs?);
    protected abstract indexRequestedDocs(requested: any): any;
    protected indexDoc(doc: JsonApiDoc): void;
    protected indexAsModel(doc: JsonApiDoc, modelType: any): Model;
    protected abstract makeDataArray(requestedDocs: any): void;
    protected makeIncludedArray(includedDocs?: JsonApiDoc[]): void;
}
