// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "user-groups.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { UserGroupsService } from "./user-groups";
import type { ListUserGroupsResult } from "./user-groups";
import type { ListUserGroupsRequest } from "./user-groups";
import type { DeleteUserGroupsResult } from "./user-groups";
import type { DeleteUserGroupsRequest } from "./user-groups";
import type { PutUserGroupsResult } from "./user-groups";
import type { PutUserGroupsRequest } from "./user-groups";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { GetUserGroupsResult } from "./user-groups";
import type { GetUserGroupsRequest } from "./user-groups";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.UserGroupsService
 */
export interface IUserGroupsServiceClient {
    /**
     * @generated from protobuf rpc: Get(api.GetUserGroupsRequest) returns (api.GetUserGroupsResult);
     */
    get(input: GetUserGroupsRequest, options?: RpcOptions): UnaryCall<GetUserGroupsRequest, GetUserGroupsResult>;
    /**
     * @generated from protobuf rpc: Put(api.PutUserGroupsRequest) returns (api.PutUserGroupsResult);
     */
    put(input: PutUserGroupsRequest, options?: RpcOptions): UnaryCall<PutUserGroupsRequest, PutUserGroupsResult>;
    /**
     * @generated from protobuf rpc: Delete(api.DeleteUserGroupsRequest) returns (api.DeleteUserGroupsResult);
     */
    delete(input: DeleteUserGroupsRequest, options?: RpcOptions): UnaryCall<DeleteUserGroupsRequest, DeleteUserGroupsResult>;
    /**
     * @generated from protobuf rpc: List(api.ListUserGroupsRequest) returns (api.ListUserGroupsResult);
     */
    list(input: ListUserGroupsRequest, options?: RpcOptions): UnaryCall<ListUserGroupsRequest, ListUserGroupsResult>;
}
/**
 * @generated from protobuf service api.UserGroupsService
 */
export class UserGroupsServiceClient implements IUserGroupsServiceClient, ServiceInfo {
    typeName = UserGroupsService.typeName;
    methods = UserGroupsService.methods;
    options = UserGroupsService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: Get(api.GetUserGroupsRequest) returns (api.GetUserGroupsResult);
     */
    get(input: GetUserGroupsRequest, options?: RpcOptions): UnaryCall<GetUserGroupsRequest, GetUserGroupsResult> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetUserGroupsRequest, GetUserGroupsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Put(api.PutUserGroupsRequest) returns (api.PutUserGroupsResult);
     */
    put(input: PutUserGroupsRequest, options?: RpcOptions): UnaryCall<PutUserGroupsRequest, PutUserGroupsResult> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<PutUserGroupsRequest, PutUserGroupsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Delete(api.DeleteUserGroupsRequest) returns (api.DeleteUserGroupsResult);
     */
    delete(input: DeleteUserGroupsRequest, options?: RpcOptions): UnaryCall<DeleteUserGroupsRequest, DeleteUserGroupsResult> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteUserGroupsRequest, DeleteUserGroupsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: List(api.ListUserGroupsRequest) returns (api.ListUserGroupsResult);
     */
    list(input: ListUserGroupsRequest, options?: RpcOptions): UnaryCall<ListUserGroupsRequest, ListUserGroupsResult> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListUserGroupsRequest, ListUserGroupsResult>("unary", this._transport, method, opt, input);
    }
}
