// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "resource.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { ResourceService } from "./resource";
import type { ListResourcesResponse } from "./resource";
import type { ListResourcesRequest } from "./resource";
import type { CleanResourceResult } from "./resource";
import type { CleanResourceRequest } from "./resource";
import type { DeleteResourceResponse } from "./resource";
import type { DeleteResourceRequest } from "./resource";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { CreateResourceResponse } from "./resource";
import type { CreateResourceRequest } from "./resource";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.ResourceService
 */
export interface IResourceServiceClient {
    /**
     * @generated from protobuf rpc: CreateResource(api.CreateResourceRequest) returns (api.CreateResourceResponse);
     */
    createResource(input: CreateResourceRequest, options?: RpcOptions): UnaryCall<CreateResourceRequest, CreateResourceResponse>;
    /**
     * @generated from protobuf rpc: DeleteResource(api.DeleteResourceRequest) returns (api.DeleteResourceResponse);
     */
    deleteResource(input: DeleteResourceRequest, options?: RpcOptions): UnaryCall<DeleteResourceRequest, DeleteResourceResponse>;
    /**
     * @generated from protobuf rpc: CleanResource(api.CleanResourceRequest) returns (api.CleanResourceResult);
     */
    cleanResource(input: CleanResourceRequest, options?: RpcOptions): UnaryCall<CleanResourceRequest, CleanResourceResult>;
    /**
     * @generated from protobuf rpc: ListResources(api.ListResourcesRequest) returns (api.ListResourcesResponse);
     */
    listResources(input: ListResourcesRequest, options?: RpcOptions): UnaryCall<ListResourcesRequest, ListResourcesResponse>;
}
/**
 * @generated from protobuf service api.ResourceService
 */
export class ResourceServiceClient implements IResourceServiceClient, ServiceInfo {
    typeName = ResourceService.typeName;
    methods = ResourceService.methods;
    options = ResourceService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: CreateResource(api.CreateResourceRequest) returns (api.CreateResourceResponse);
     */
    createResource(input: CreateResourceRequest, options?: RpcOptions): UnaryCall<CreateResourceRequest, CreateResourceResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateResourceRequest, CreateResourceResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteResource(api.DeleteResourceRequest) returns (api.DeleteResourceResponse);
     */
    deleteResource(input: DeleteResourceRequest, options?: RpcOptions): UnaryCall<DeleteResourceRequest, DeleteResourceResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteResourceRequest, DeleteResourceResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: CleanResource(api.CleanResourceRequest) returns (api.CleanResourceResult);
     */
    cleanResource(input: CleanResourceRequest, options?: RpcOptions): UnaryCall<CleanResourceRequest, CleanResourceResult> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<CleanResourceRequest, CleanResourceResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ListResources(api.ListResourcesRequest) returns (api.ListResourcesResponse);
     */
    listResources(input: ListResourcesRequest, options?: RpcOptions): UnaryCall<ListResourcesRequest, ListResourcesResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListResourcesRequest, ListResourcesResponse>("unary", this._transport, method, opt, input);
    }
}
