// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "attachmentV2.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { AttachmentServiceV2 } from "./attachmentV2";
import type { DeleteAllAttachmentsV2Response } from "./attachmentV2";
import type { DeleteAllAttachmentsV2Request } from "./attachmentV2";
import type { ShareAttachmentV2Response } from "./attachmentV2";
import type { ShareAttachmentV2Request } from "./attachmentV2";
import type { ListAttachmentsV2Response } from "./attachmentV2";
import type { ListAttachmentsV2Request } from "./attachmentV2";
import type { DeleteAttachmentV2Response } from "./attachmentV2";
import type { DeleteAttachmentV2Request } from "./attachmentV2";
import type { DownloadAttachmentV2Response } from "./attachmentV2";
import type { DownloadAttachmentV2Request } from "./attachmentV2";
import type { AddLinkV2Response } from "./attachmentV2";
import type { AddLinkV2Request } from "./attachmentV2";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { UploadAttachmentV2Response } from "./attachmentV2";
import type { UploadAttachmentV2Request } from "./attachmentV2";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.AttachmentServiceV2
 */
export interface IAttachmentServiceV2Client {
    /**
     * @generated from protobuf rpc: Upload(api.UploadAttachmentV2Request) returns (api.UploadAttachmentV2Response);
     */
    upload(input: UploadAttachmentV2Request, options?: RpcOptions): UnaryCall<UploadAttachmentV2Request, UploadAttachmentV2Response>;
    /**
     * @generated from protobuf rpc: AddLink(api.AddLinkV2Request) returns (api.AddLinkV2Response);
     */
    addLink(input: AddLinkV2Request, options?: RpcOptions): UnaryCall<AddLinkV2Request, AddLinkV2Response>;
    /**
     * @generated from protobuf rpc: Download(api.DownloadAttachmentV2Request) returns (api.DownloadAttachmentV2Response);
     */
    download(input: DownloadAttachmentV2Request, options?: RpcOptions): UnaryCall<DownloadAttachmentV2Request, DownloadAttachmentV2Response>;
    /**
     * @generated from protobuf rpc: Delete(api.DeleteAttachmentV2Request) returns (api.DeleteAttachmentV2Response);
     */
    delete(input: DeleteAttachmentV2Request, options?: RpcOptions): UnaryCall<DeleteAttachmentV2Request, DeleteAttachmentV2Response>;
    /**
     * @generated from protobuf rpc: List(api.ListAttachmentsV2Request) returns (api.ListAttachmentsV2Response);
     */
    list(input: ListAttachmentsV2Request, options?: RpcOptions): UnaryCall<ListAttachmentsV2Request, ListAttachmentsV2Response>;
    /**
     * @generated from protobuf rpc: Share(api.ShareAttachmentV2Request) returns (api.ShareAttachmentV2Response);
     */
    share(input: ShareAttachmentV2Request, options?: RpcOptions): UnaryCall<ShareAttachmentV2Request, ShareAttachmentV2Response>;
    /**
     * @generated from protobuf rpc: DeleteAll(api.DeleteAllAttachmentsV2Request) returns (api.DeleteAllAttachmentsV2Response);
     */
    deleteAll(input: DeleteAllAttachmentsV2Request, options?: RpcOptions): UnaryCall<DeleteAllAttachmentsV2Request, DeleteAllAttachmentsV2Response>;
}
/**
 * @generated from protobuf service api.AttachmentServiceV2
 */
export class AttachmentServiceV2Client implements IAttachmentServiceV2Client, ServiceInfo {
    typeName = AttachmentServiceV2.typeName;
    methods = AttachmentServiceV2.methods;
    options = AttachmentServiceV2.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: Upload(api.UploadAttachmentV2Request) returns (api.UploadAttachmentV2Response);
     */
    upload(input: UploadAttachmentV2Request, options?: RpcOptions): UnaryCall<UploadAttachmentV2Request, UploadAttachmentV2Response> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<UploadAttachmentV2Request, UploadAttachmentV2Response>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: AddLink(api.AddLinkV2Request) returns (api.AddLinkV2Response);
     */
    addLink(input: AddLinkV2Request, options?: RpcOptions): UnaryCall<AddLinkV2Request, AddLinkV2Response> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<AddLinkV2Request, AddLinkV2Response>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Download(api.DownloadAttachmentV2Request) returns (api.DownloadAttachmentV2Response);
     */
    download(input: DownloadAttachmentV2Request, options?: RpcOptions): UnaryCall<DownloadAttachmentV2Request, DownloadAttachmentV2Response> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<DownloadAttachmentV2Request, DownloadAttachmentV2Response>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Delete(api.DeleteAttachmentV2Request) returns (api.DeleteAttachmentV2Response);
     */
    delete(input: DeleteAttachmentV2Request, options?: RpcOptions): UnaryCall<DeleteAttachmentV2Request, DeleteAttachmentV2Response> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteAttachmentV2Request, DeleteAttachmentV2Response>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: List(api.ListAttachmentsV2Request) returns (api.ListAttachmentsV2Response);
     */
    list(input: ListAttachmentsV2Request, options?: RpcOptions): UnaryCall<ListAttachmentsV2Request, ListAttachmentsV2Response> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListAttachmentsV2Request, ListAttachmentsV2Response>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Share(api.ShareAttachmentV2Request) returns (api.ShareAttachmentV2Response);
     */
    share(input: ShareAttachmentV2Request, options?: RpcOptions): UnaryCall<ShareAttachmentV2Request, ShareAttachmentV2Response> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<ShareAttachmentV2Request, ShareAttachmentV2Response>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteAll(api.DeleteAllAttachmentsV2Request) returns (api.DeleteAllAttachmentsV2Response);
     */
    deleteAll(input: DeleteAllAttachmentsV2Request, options?: RpcOptions): UnaryCall<DeleteAllAttachmentsV2Request, DeleteAllAttachmentsV2Response> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteAllAttachmentsV2Request, DeleteAllAttachmentsV2Response>("unary", this._transport, method, opt, input);
    }
}
