// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "users.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { Users } from "./users";
import type { DeleteUserResult } from "./users";
import type { DeleteUserRequest } from "./users";
import type { EditUserResult } from "./users";
import type { EditUserRequest } from "./users";
import type { ListUsersResult } from "./users";
import type { ListUsersRequest } from "./users";
import type { GetUserResult } from "./users";
import type { GetUserRequest } from "./users";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { CreateUserResult } from "./users";
import type { CreateUserRequest } from "./users";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.Users
 */
export interface IUsersClient {
    /**
     * @generated from protobuf rpc: CreateUser(api.CreateUserRequest) returns (api.CreateUserResult);
     */
    createUser(input: CreateUserRequest, options?: RpcOptions): UnaryCall<CreateUserRequest, CreateUserResult>;
    /**
     * @generated from protobuf rpc: GetUser(api.GetUserRequest) returns (api.GetUserResult);
     */
    getUser(input: GetUserRequest, options?: RpcOptions): UnaryCall<GetUserRequest, GetUserResult>;
    /**
     * @generated from protobuf rpc: ListUsers(api.ListUsersRequest) returns (api.ListUsersResult);
     */
    listUsers(input: ListUsersRequest, options?: RpcOptions): UnaryCall<ListUsersRequest, ListUsersResult>;
    /**
     * @generated from protobuf rpc: EditUser(api.EditUserRequest) returns (api.EditUserResult);
     */
    editUser(input: EditUserRequest, options?: RpcOptions): UnaryCall<EditUserRequest, EditUserResult>;
    /**
     * @generated from protobuf rpc: DeleteUser(api.DeleteUserRequest) returns (api.DeleteUserResult);
     */
    deleteUser(input: DeleteUserRequest, options?: RpcOptions): UnaryCall<DeleteUserRequest, DeleteUserResult>;
}
/**
 * @generated from protobuf service api.Users
 */
export class UsersClient implements IUsersClient, ServiceInfo {
    typeName = Users.typeName;
    methods = Users.methods;
    options = Users.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: CreateUser(api.CreateUserRequest) returns (api.CreateUserResult);
     */
    createUser(input: CreateUserRequest, options?: RpcOptions): UnaryCall<CreateUserRequest, CreateUserResult> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateUserRequest, CreateUserResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetUser(api.GetUserRequest) returns (api.GetUserResult);
     */
    getUser(input: GetUserRequest, options?: RpcOptions): UnaryCall<GetUserRequest, GetUserResult> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetUserRequest, GetUserResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ListUsers(api.ListUsersRequest) returns (api.ListUsersResult);
     */
    listUsers(input: ListUsersRequest, options?: RpcOptions): UnaryCall<ListUsersRequest, ListUsersResult> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListUsersRequest, ListUsersResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: EditUser(api.EditUserRequest) returns (api.EditUserResult);
     */
    editUser(input: EditUserRequest, options?: RpcOptions): UnaryCall<EditUserRequest, EditUserResult> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<EditUserRequest, EditUserResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteUser(api.DeleteUserRequest) returns (api.DeleteUserResult);
     */
    deleteUser(input: DeleteUserRequest, options?: RpcOptions): UnaryCall<DeleteUserRequest, DeleteUserResult> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteUserRequest, DeleteUserResult>("unary", this._transport, method, opt, input);
    }
}
