import { Stream } from "node:stream";
import { RavenCommand } from "../../../Http/RavenCommand.js";
import { GetResponse } from "./GetResponse.js";
import { HttpRequestParameters } from "../../../Primitives/Http.js";
import { GetRequest } from "./GetRequest.js";
import { ServerNode } from "../../../Http/ServerNode.js";
import { DocumentConventions } from "../../Conventions/DocumentConventions.js";
import { IDisposable } from "../../../Types/Contracts.js";
import { RequestExecutor } from "../../../Http/RequestExecutor.js";
import { SessionInfo } from "../../Session/IDocumentSession.js";
export declare class MultiGetCommand extends RavenCommand<GetResponse[]> implements IDisposable {
    private readonly _requestExecutor;
    private _httpCache;
    private readonly _commands;
    private _sessionInfo;
    private _conventions;
    private _baseUrl;
    private _cached;
    aggressivelyCached: boolean;
    constructor(requestExecutor: RequestExecutor, conventions: DocumentConventions, commands: GetRequest[], sessionInfo?: SessionInfo);
    private _getCacheKey;
    createRequest(node: ServerNode): HttpRequestParameters;
    private _maybeReadAllFromCache;
    setResponseAsync(bodyStream: Stream, fromCache: boolean): Promise<string>;
    private _maybeSetCache;
    get isReadRequest(): boolean;
    dispose(): void;
    closeCache(): void;
    private static _mapToLocalObject;
}
//# sourceMappingURL=MultiGetCommand.d.ts.map