// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "restrictions.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { RestrictionService } from "./restrictions";
import type { ComputeRuleResponse } from "./restrictions";
import type { ComputeRuleRequest } from "./restrictions";
import type { GetRuleJSONTreeResponse } from "./restrictions";
import type { GetRuleJSONTreeRequest } from "./restrictions";
import type { ValidateRestrictionRuleResponse } from "./restrictions";
import type { ValidateRestrictionRuleRequest } from "./restrictions";
import type { GetRulesJSONTreeResponse } from "./restrictions";
import type { GetRulesJSONTreeRequest } from "./restrictions";
import type { DeleteForProjectRestrictionResponse } from "./restrictions";
import type { DeleteForProjectRestrictionRequest } from "./restrictions";
import type { DisableRestrictionResponse } from "./restrictions";
import type { DisableRestrictionRequest } from "./restrictions";
import type { EnableRestrictionResponse } from "./restrictions";
import type { EnableRestrictionRequest } from "./restrictions";
import type { DeleteRestrictionResponse } from "./restrictions";
import type { DeleteRestrictionRequest } from "./restrictions";
import type { ListRestrictionsResponse } from "./restrictions";
import type { ListRestrictionsRequest } from "./restrictions";
import type { GetRestrictionResponse } from "./restrictions";
import type { GetRestrictionRequest } from "./restrictions";
import type { UpdateRestrictionResponse } from "./restrictions";
import type { UpdateRestrictionRequest } from "./restrictions";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { CreateRestrictionResponse } from "./restrictions";
import type { CreateRestrictionRequest } from "./restrictions";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.RestrictionService
 */
export interface IRestrictionServiceClient {
    /**
     * @generated from protobuf rpc: Create(api.CreateRestrictionRequest) returns (api.CreateRestrictionResponse);
     */
    create(input: CreateRestrictionRequest, options?: RpcOptions): UnaryCall<CreateRestrictionRequest, CreateRestrictionResponse>;
    /**
     * @generated from protobuf rpc: Update(api.UpdateRestrictionRequest) returns (api.UpdateRestrictionResponse);
     */
    update(input: UpdateRestrictionRequest, options?: RpcOptions): UnaryCall<UpdateRestrictionRequest, UpdateRestrictionResponse>;
    /**
     * @generated from protobuf rpc: Get(api.GetRestrictionRequest) returns (api.GetRestrictionResponse);
     */
    get(input: GetRestrictionRequest, options?: RpcOptions): UnaryCall<GetRestrictionRequest, GetRestrictionResponse>;
    /**
     * @generated from protobuf rpc: List(api.ListRestrictionsRequest) returns (api.ListRestrictionsResponse);
     */
    list(input: ListRestrictionsRequest, options?: RpcOptions): UnaryCall<ListRestrictionsRequest, ListRestrictionsResponse>;
    /**
     * @generated from protobuf rpc: Delete(api.DeleteRestrictionRequest) returns (api.DeleteRestrictionResponse);
     */
    delete(input: DeleteRestrictionRequest, options?: RpcOptions): UnaryCall<DeleteRestrictionRequest, DeleteRestrictionResponse>;
    /**
     * @generated from protobuf rpc: Enable(api.EnableRestrictionRequest) returns (api.EnableRestrictionResponse);
     */
    enable(input: EnableRestrictionRequest, options?: RpcOptions): UnaryCall<EnableRestrictionRequest, EnableRestrictionResponse>;
    /**
     * @generated from protobuf rpc: Disable(api.DisableRestrictionRequest) returns (api.DisableRestrictionResponse);
     */
    disable(input: DisableRestrictionRequest, options?: RpcOptions): UnaryCall<DisableRestrictionRequest, DisableRestrictionResponse>;
    /**
     * @generated from protobuf rpc: DeleteForProject(api.DeleteForProjectRestrictionRequest) returns (api.DeleteForProjectRestrictionResponse);
     */
    deleteForProject(input: DeleteForProjectRestrictionRequest, options?: RpcOptions): UnaryCall<DeleteForProjectRestrictionRequest, DeleteForProjectRestrictionResponse>;
    /**
     * @generated from protobuf rpc: GetRulesJSONTree(api.GetRulesJSONTreeRequest) returns (api.GetRulesJSONTreeResponse);
     */
    getRulesJSONTree(input: GetRulesJSONTreeRequest, options?: RpcOptions): UnaryCall<GetRulesJSONTreeRequest, GetRulesJSONTreeResponse>;
    /**
     * @generated from protobuf rpc: ValidateRule(api.ValidateRestrictionRuleRequest) returns (api.ValidateRestrictionRuleResponse);
     */
    validateRule(input: ValidateRestrictionRuleRequest, options?: RpcOptions): UnaryCall<ValidateRestrictionRuleRequest, ValidateRestrictionRuleResponse>;
    /**
     * @generated from protobuf rpc: GetRuleJSONTree(api.GetRuleJSONTreeRequest) returns (api.GetRuleJSONTreeResponse);
     */
    getRuleJSONTree(input: GetRuleJSONTreeRequest, options?: RpcOptions): UnaryCall<GetRuleJSONTreeRequest, GetRuleJSONTreeResponse>;
    /**
     * @generated from protobuf rpc: Compute(api.ComputeRuleRequest) returns (api.ComputeRuleResponse);
     */
    compute(input: ComputeRuleRequest, options?: RpcOptions): UnaryCall<ComputeRuleRequest, ComputeRuleResponse>;
}
/**
 * @generated from protobuf service api.RestrictionService
 */
export class RestrictionServiceClient implements IRestrictionServiceClient, ServiceInfo {
    typeName = RestrictionService.typeName;
    methods = RestrictionService.methods;
    options = RestrictionService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: Create(api.CreateRestrictionRequest) returns (api.CreateRestrictionResponse);
     */
    create(input: CreateRestrictionRequest, options?: RpcOptions): UnaryCall<CreateRestrictionRequest, CreateRestrictionResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateRestrictionRequest, CreateRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Update(api.UpdateRestrictionRequest) returns (api.UpdateRestrictionResponse);
     */
    update(input: UpdateRestrictionRequest, options?: RpcOptions): UnaryCall<UpdateRestrictionRequest, UpdateRestrictionResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<UpdateRestrictionRequest, UpdateRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Get(api.GetRestrictionRequest) returns (api.GetRestrictionResponse);
     */
    get(input: GetRestrictionRequest, options?: RpcOptions): UnaryCall<GetRestrictionRequest, GetRestrictionResponse> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetRestrictionRequest, GetRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: List(api.ListRestrictionsRequest) returns (api.ListRestrictionsResponse);
     */
    list(input: ListRestrictionsRequest, options?: RpcOptions): UnaryCall<ListRestrictionsRequest, ListRestrictionsResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListRestrictionsRequest, ListRestrictionsResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Delete(api.DeleteRestrictionRequest) returns (api.DeleteRestrictionResponse);
     */
    delete(input: DeleteRestrictionRequest, options?: RpcOptions): UnaryCall<DeleteRestrictionRequest, DeleteRestrictionResponse> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteRestrictionRequest, DeleteRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Enable(api.EnableRestrictionRequest) returns (api.EnableRestrictionResponse);
     */
    enable(input: EnableRestrictionRequest, options?: RpcOptions): UnaryCall<EnableRestrictionRequest, EnableRestrictionResponse> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<EnableRestrictionRequest, EnableRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Disable(api.DisableRestrictionRequest) returns (api.DisableRestrictionResponse);
     */
    disable(input: DisableRestrictionRequest, options?: RpcOptions): UnaryCall<DisableRestrictionRequest, DisableRestrictionResponse> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<DisableRestrictionRequest, DisableRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteForProject(api.DeleteForProjectRestrictionRequest) returns (api.DeleteForProjectRestrictionResponse);
     */
    deleteForProject(input: DeleteForProjectRestrictionRequest, options?: RpcOptions): UnaryCall<DeleteForProjectRestrictionRequest, DeleteForProjectRestrictionResponse> {
        const method = this.methods[7], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteForProjectRestrictionRequest, DeleteForProjectRestrictionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetRulesJSONTree(api.GetRulesJSONTreeRequest) returns (api.GetRulesJSONTreeResponse);
     */
    getRulesJSONTree(input: GetRulesJSONTreeRequest, options?: RpcOptions): UnaryCall<GetRulesJSONTreeRequest, GetRulesJSONTreeResponse> {
        const method = this.methods[8], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetRulesJSONTreeRequest, GetRulesJSONTreeResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ValidateRule(api.ValidateRestrictionRuleRequest) returns (api.ValidateRestrictionRuleResponse);
     */
    validateRule(input: ValidateRestrictionRuleRequest, options?: RpcOptions): UnaryCall<ValidateRestrictionRuleRequest, ValidateRestrictionRuleResponse> {
        const method = this.methods[9], opt = this._transport.mergeOptions(options);
        return stackIntercept<ValidateRestrictionRuleRequest, ValidateRestrictionRuleResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetRuleJSONTree(api.GetRuleJSONTreeRequest) returns (api.GetRuleJSONTreeResponse);
     */
    getRuleJSONTree(input: GetRuleJSONTreeRequest, options?: RpcOptions): UnaryCall<GetRuleJSONTreeRequest, GetRuleJSONTreeResponse> {
        const method = this.methods[10], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetRuleJSONTreeRequest, GetRuleJSONTreeResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Compute(api.ComputeRuleRequest) returns (api.ComputeRuleResponse);
     */
    compute(input: ComputeRuleRequest, options?: RpcOptions): UnaryCall<ComputeRuleRequest, ComputeRuleResponse> {
        const method = this.methods[11], opt = this._transport.mergeOptions(options);
        return stackIntercept<ComputeRuleRequest, ComputeRuleResponse>("unary", this._transport, method, opt, input);
    }
}
