// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "api.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { APIService } from "./api";
import type { CleanScopeResult } from "./api";
import type { CleanScopeRequest } from "./api";
import type { DeleteScopeResult } from "./api";
import type { DeleteScopeRequest } from "./api";
import type { CreateScopeResult } from "./api";
import type { CreateScopeRequest } from "./api";
import type { RegisterPackageResult } from "./api";
import type { RegisterPackageRequest } from "./api";
import type { ListUserUIPermissionsResult } from "./api";
import type { ListUserUIPermissionsRequest } from "./api";
import type { GetUIPermissionsResult } from "./api";
import type { GetUIPermissionsRequest } from "./api";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { GetPermissionsResult } from "./api";
import type { GetPermissionsRequest } from "./api";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.APIService
 */
export interface IAPIServiceClient {
    /**
     * @generated from protobuf rpc: GetPermissions(api.GetPermissionsRequest) returns (api.GetPermissionsResult);
     */
    getPermissions(input: GetPermissionsRequest, options?: RpcOptions): UnaryCall<GetPermissionsRequest, GetPermissionsResult>;
    /**
     * @generated from protobuf rpc: GetUIPermissions(api.GetUIPermissionsRequest) returns (api.GetUIPermissionsResult);
     */
    getUIPermissions(input: GetUIPermissionsRequest, options?: RpcOptions): UnaryCall<GetUIPermissionsRequest, GetUIPermissionsResult>;
    /**
     * @generated from protobuf rpc: ListUserUIPermissions(api.ListUserUIPermissionsRequest) returns (api.ListUserUIPermissionsResult);
     */
    listUserUIPermissions(input: ListUserUIPermissionsRequest, options?: RpcOptions): UnaryCall<ListUserUIPermissionsRequest, ListUserUIPermissionsResult>;
    /**
     * @generated from protobuf rpc: RegisterPackage(api.RegisterPackageRequest) returns (api.RegisterPackageResult);
     */
    registerPackage(input: RegisterPackageRequest, options?: RpcOptions): UnaryCall<RegisterPackageRequest, RegisterPackageResult>;
    /**
     * @generated from protobuf rpc: CreateScope(api.CreateScopeRequest) returns (api.CreateScopeResult);
     */
    createScope(input: CreateScopeRequest, options?: RpcOptions): UnaryCall<CreateScopeRequest, CreateScopeResult>;
    /**
     * @generated from protobuf rpc: DeleteScope(api.DeleteScopeRequest) returns (api.DeleteScopeResult);
     */
    deleteScope(input: DeleteScopeRequest, options?: RpcOptions): UnaryCall<DeleteScopeRequest, DeleteScopeResult>;
    /**
     * @generated from protobuf rpc: CleanScope(api.CleanScopeRequest) returns (api.CleanScopeResult);
     */
    cleanScope(input: CleanScopeRequest, options?: RpcOptions): UnaryCall<CleanScopeRequest, CleanScopeResult>;
}
/**
 * @generated from protobuf service api.APIService
 */
export class APIServiceClient implements IAPIServiceClient, ServiceInfo {
    typeName = APIService.typeName;
    methods = APIService.methods;
    options = APIService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: GetPermissions(api.GetPermissionsRequest) returns (api.GetPermissionsResult);
     */
    getPermissions(input: GetPermissionsRequest, options?: RpcOptions): UnaryCall<GetPermissionsRequest, GetPermissionsResult> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetPermissionsRequest, GetPermissionsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetUIPermissions(api.GetUIPermissionsRequest) returns (api.GetUIPermissionsResult);
     */
    getUIPermissions(input: GetUIPermissionsRequest, options?: RpcOptions): UnaryCall<GetUIPermissionsRequest, GetUIPermissionsResult> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetUIPermissionsRequest, GetUIPermissionsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ListUserUIPermissions(api.ListUserUIPermissionsRequest) returns (api.ListUserUIPermissionsResult);
     */
    listUserUIPermissions(input: ListUserUIPermissionsRequest, options?: RpcOptions): UnaryCall<ListUserUIPermissionsRequest, ListUserUIPermissionsResult> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListUserUIPermissionsRequest, ListUserUIPermissionsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: RegisterPackage(api.RegisterPackageRequest) returns (api.RegisterPackageResult);
     */
    registerPackage(input: RegisterPackageRequest, options?: RpcOptions): UnaryCall<RegisterPackageRequest, RegisterPackageResult> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<RegisterPackageRequest, RegisterPackageResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: CreateScope(api.CreateScopeRequest) returns (api.CreateScopeResult);
     */
    createScope(input: CreateScopeRequest, options?: RpcOptions): UnaryCall<CreateScopeRequest, CreateScopeResult> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateScopeRequest, CreateScopeResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteScope(api.DeleteScopeRequest) returns (api.DeleteScopeResult);
     */
    deleteScope(input: DeleteScopeRequest, options?: RpcOptions): UnaryCall<DeleteScopeRequest, DeleteScopeResult> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteScopeRequest, DeleteScopeResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: CleanScope(api.CleanScopeRequest) returns (api.CleanScopeResult);
     */
    cleanScope(input: CleanScopeRequest, options?: RpcOptions): UnaryCall<CleanScopeRequest, CleanScopeResult> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<CleanScopeRequest, CleanScopeResult>("unary", this._transport, method, opt, input);
    }
}
