// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "rules.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { RuleService } from "./rules";
import type { GetJSONTreeResponse } from "./rules";
import type { GetJSONTreeRequest } from "./rules";
import type { DisableRuleResponse } from "./rules";
import type { DisableRuleRequest } from "./rules";
import type { EnableRuleResponse } from "./rules";
import type { EnableRuleRequest } from "./rules";
import type { DeleteRuleResponse } from "./rules";
import type { DeleteRuleRequest } from "./rules";
import type { ListRulesResponse } from "./rules";
import type { ListRulesRequest } from "./rules";
import type { GetRuleResponse } from "./rules";
import type { GetRuleRequest } from "./rules";
import type { UpdateRuleResponse } from "./rules";
import type { UpdateRuleRequest } from "./rules";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { CreateRuleResponse } from "./rules";
import type { CreateRuleRequest } from "./rules";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.RuleService
 */
export interface IRuleServiceClient {
    /**
     * @generated from protobuf rpc: Create(api.CreateRuleRequest) returns (api.CreateRuleResponse);
     */
    create(input: CreateRuleRequest, options?: RpcOptions): UnaryCall<CreateRuleRequest, CreateRuleResponse>;
    /**
     * @generated from protobuf rpc: Update(api.UpdateRuleRequest) returns (api.UpdateRuleResponse);
     */
    update(input: UpdateRuleRequest, options?: RpcOptions): UnaryCall<UpdateRuleRequest, UpdateRuleResponse>;
    /**
     * @generated from protobuf rpc: Get(api.GetRuleRequest) returns (api.GetRuleResponse);
     */
    get(input: GetRuleRequest, options?: RpcOptions): UnaryCall<GetRuleRequest, GetRuleResponse>;
    /**
     * @generated from protobuf rpc: List(api.ListRulesRequest) returns (api.ListRulesResponse);
     */
    list(input: ListRulesRequest, options?: RpcOptions): UnaryCall<ListRulesRequest, ListRulesResponse>;
    /**
     * @generated from protobuf rpc: Delete(api.DeleteRuleRequest) returns (api.DeleteRuleResponse);
     */
    delete(input: DeleteRuleRequest, options?: RpcOptions): UnaryCall<DeleteRuleRequest, DeleteRuleResponse>;
    /**
     * @generated from protobuf rpc: Enable(api.EnableRuleRequest) returns (api.EnableRuleResponse);
     */
    enable(input: EnableRuleRequest, options?: RpcOptions): UnaryCall<EnableRuleRequest, EnableRuleResponse>;
    /**
     * @generated from protobuf rpc: Disable(api.DisableRuleRequest) returns (api.DisableRuleResponse);
     */
    disable(input: DisableRuleRequest, options?: RpcOptions): UnaryCall<DisableRuleRequest, DisableRuleResponse>;
    /**
     * @generated from protobuf rpc: GetJSONTree(api.GetJSONTreeRequest) returns (api.GetJSONTreeResponse);
     */
    getJSONTree(input: GetJSONTreeRequest, options?: RpcOptions): UnaryCall<GetJSONTreeRequest, GetJSONTreeResponse>;
}
/**
 * @generated from protobuf service api.RuleService
 */
export class RuleServiceClient implements IRuleServiceClient, ServiceInfo {
    typeName = RuleService.typeName;
    methods = RuleService.methods;
    options = RuleService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: Create(api.CreateRuleRequest) returns (api.CreateRuleResponse);
     */
    create(input: CreateRuleRequest, options?: RpcOptions): UnaryCall<CreateRuleRequest, CreateRuleResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateRuleRequest, CreateRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Update(api.UpdateRuleRequest) returns (api.UpdateRuleResponse);
     */
    update(input: UpdateRuleRequest, options?: RpcOptions): UnaryCall<UpdateRuleRequest, UpdateRuleResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<UpdateRuleRequest, UpdateRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Get(api.GetRuleRequest) returns (api.GetRuleResponse);
     */
    get(input: GetRuleRequest, options?: RpcOptions): UnaryCall<GetRuleRequest, GetRuleResponse> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetRuleRequest, GetRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: List(api.ListRulesRequest) returns (api.ListRulesResponse);
     */
    list(input: ListRulesRequest, options?: RpcOptions): UnaryCall<ListRulesRequest, ListRulesResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListRulesRequest, ListRulesResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Delete(api.DeleteRuleRequest) returns (api.DeleteRuleResponse);
     */
    delete(input: DeleteRuleRequest, options?: RpcOptions): UnaryCall<DeleteRuleRequest, DeleteRuleResponse> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteRuleRequest, DeleteRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Enable(api.EnableRuleRequest) returns (api.EnableRuleResponse);
     */
    enable(input: EnableRuleRequest, options?: RpcOptions): UnaryCall<EnableRuleRequest, EnableRuleResponse> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<EnableRuleRequest, EnableRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Disable(api.DisableRuleRequest) returns (api.DisableRuleResponse);
     */
    disable(input: DisableRuleRequest, options?: RpcOptions): UnaryCall<DisableRuleRequest, DisableRuleResponse> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<DisableRuleRequest, DisableRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetJSONTree(api.GetJSONTreeRequest) returns (api.GetJSONTreeResponse);
     */
    getJSONTree(input: GetJSONTreeRequest, options?: RpcOptions): UnaryCall<GetJSONTreeRequest, GetJSONTreeResponse> {
        const method = this.methods[7], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetJSONTreeRequest, GetJSONTreeResponse>("unary", this._transport, method, opt, input);
    }
}
