import { IOperation, OperationResultType } from "../OperationAbstractions.js";
import { AttachmentData, AttachmentDetails } from "../../Attachments/index.js";
import { IDocumentStore } from "../../IDocumentStore.js";
import { HttpCache } from "../../../Http/HttpCache.js";
import { HttpRequestParameters } from "../../../Primitives/Http.js";
import { Stream } from "node:stream";
import { DocumentConventions } from "../../Conventions/DocumentConventions.js";
import { RavenCommand } from "../../../Http/RavenCommand.js";
import { ServerNode } from "../../../Http/ServerNode.js";
export declare class PutAttachmentOperation implements IOperation<AttachmentDetails> {
    private readonly _documentId;
    private readonly _name;
    private readonly _stream;
    private readonly _contentType;
    private readonly _changeVector;
    constructor(documentId: string, name: string, stream: AttachmentData);
    constructor(documentId: string, name: string, stream: AttachmentData, contentType: string);
    constructor(documentId: string, name: string, stream: AttachmentData, contentType: string, changeVector: string);
    getCommand(store: IDocumentStore, conventions: DocumentConventions, httpCache: HttpCache): RavenCommand<AttachmentDetails>;
    get resultType(): OperationResultType;
}
export declare class PutAttachmentCommand extends RavenCommand<AttachmentDetails> {
    private readonly _documentId;
    private readonly _name;
    private readonly _stream;
    private readonly _contentType;
    private readonly _changeVector;
    constructor(documentId: string, name: string, stream: AttachmentData, contentType: string, changeVector: string);
    createRequest(node: ServerNode): HttpRequestParameters;
    setResponseAsync(bodyStream: Stream, fromCache: boolean): Promise<string>;
    get isReadRequest(): boolean;
}
//# sourceMappingURL=PutAttachmentOperation.d.ts.map