import { IOperation, OperationResultType } from "../OperationAbstractions.js";
import { HttpRequestParameters, HttpResponse } from "../../../Primitives/Http.js";
import { AttachmentResult, AttachmentType } from "../../Attachments/index.js";
import { RavenCommand, ResponseDisposeHandling } from "../../../Http/RavenCommand.js";
import { HttpCache } from "../../../Http/HttpCache.js";
import { IDocumentStore } from "../../IDocumentStore.js";
import { DocumentConventions } from "../../Conventions/DocumentConventions.js";
import { ServerNode } from "../../../Http/ServerNode.js";
import { Readable } from "node:stream";
export declare class GetAttachmentOperation implements IOperation<AttachmentResult> {
    private readonly _documentId;
    private readonly _name;
    private readonly _type;
    private readonly _changeVector;
    get resultType(): OperationResultType;
    constructor(documentId: string, name: string, type: AttachmentType, changeVector: string);
    getCommand(store: IDocumentStore, conventions: DocumentConventions, cache: HttpCache): RavenCommand<AttachmentResult>;
}
export declare class GetAttachmentCommand extends RavenCommand<AttachmentResult> {
    private readonly _documentId;
    private readonly _name;
    private readonly _type;
    private readonly _changeVector;
    constructor(documentId: string, name: string, type: AttachmentType, changeVector: string);
    createRequest(node: ServerNode): HttpRequestParameters;
    processResponse(cache: HttpCache, response: HttpResponse, bodyStream: Readable, url: string): Promise<ResponseDisposeHandling>;
    get isReadRequest(): boolean;
}
//# sourceMappingURL=GetAttachmentOperation.d.ts.map