import { APISchema } from '../schema/APISchema';
import { IRequestField } from '../requests/apiRequests/IRequestArgument';
import { IQuery } from '../query/IQuery';
import { ArrayDataObject } from '../cache/dataObject/impl/ArrayDataObject';
import { FlatResultDataObject } from '../cache/dataObject/impl/FlatRequestDataObject';
import { AggregationApiRequest } from '../requests/apiRequests/impl/AggregationApiRequest';
export declare class MongoResponseParser {
    private static _responseParserInstance;
    constructor();
    static getInstance(): MongoResponseParser;
    parseShemaFromDocument(document: Promise<any>): APISchema;
    private _parseValues;
    parseCalculationsFromCursor(cursor: Promise<any>, query: IQuery[], dataChunkSize: number, startDate: Date, aggregationApiRequest: AggregationApiRequest): Promise<ArrayDataObject>;
    private parseAggregations;
    parseMembersFromCursor(cursor: Promise<any>, fieldObject: IRequestField, dataChunkSize: number, startDate: Date): Promise<ArrayDataObject>;
    parseFlatFromCursor(cursor: Promise<any>, fields: IRequestField[], queries: IQuery[], dataChunkSize: number, startDate: Date): Promise<FlatResultDataObject>;
    private defineFieldTypesFromData;
    parseDrillThroughFromCursor(cursor: Promise<any>, fields: IRequestField[], dataChunkSize: number, startDate: Date): Promise<FlatResultDataObject>;
    private parseDrillThroughData;
    private parseDrillThroughFields;
    private parseDrillThroughHit;
    private _getNestedObjectValue;
    private parseValueFromComplexType;
    private dotsDelimeterRegExp;
    private parseDotsFromKeys;
}
