// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "role.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { RoleService } from "./role";
import type { GetRoleResourceTypesResult } from "./role";
import type { GetRoleResourceTypesRequest } from "./role";
import type { DeleteRolesOnResourceResult } from "./role";
import type { DeleteRolesOnResourceRequest } from "./role";
import type { PropagateRolesOnResourceResult } from "./role";
import type { PropagateRolesOnResourceRequest } from "./role";
import type { DeleteRoleExternalPermissionsResult } from "./role";
import type { DeleteRoleExternalPermissionsRequest } from "./role";
import type { PutRoleExternalPermissionsResult } from "./role";
import type { PutRoleExternalPermissionsRequest } from "./role";
import type { ListProjectRolesResult } from "./role";
import type { ListProjectRolesRequest } from "./role";
import type { ListOrganisationRolesResult } from "./role";
import type { ListOrganisationRolesRequest } from "./role";
import type { ListPlatformRolesResult } from "./role";
import type { ListPlatformRolesRequest } from "./role";
import type { GetProjectRoleResult } from "./role";
import type { GetProjectRoleRequest } from "./role";
import type { GetOrganisationRoleResult } from "./role";
import type { GetOrganisationRoleRequest } from "./role";
import type { GetPlatformRoleResult } from "./role";
import type { GetPlatformRoleRequest } from "./role";
import type { DeleteProjectRoleResult } from "./role";
import type { DeleteProjectRoleRequest } from "./role";
import type { DeleteOrganisationRoleResult } from "./role";
import type { DeleteOrganisationRoleRequest } from "./role";
import type { DeletePlatformRoleResult } from "./role";
import type { DeletePlatformRoleRequest } from "./role";
import type { DeleteAllPlatformRolesResult } from "./role";
import type { DeleteAllPlatformRolesRequest } from "./role";
import type { UpdateProjectRoleResult } from "./role";
import type { UpdateProjectRoleRequest } from "./role";
import type { UpdateOrganisationRoleResult } from "./role";
import type { UpdateOrganisationRoleRequest } from "./role";
import type { UpdatePlatformRoleResult } from "./role";
import type { UpdatePlatformRoleRequest } from "./role";
import type { CreateProjectRoleResult } from "./role";
import type { CreateProjectRoleRequest } from "./role";
import type { CreateOrganisationRoleResult } from "./role";
import type { CreateOrganisationRoleRequest } from "./role";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { CreatePlatformRoleResult } from "./role";
import type { CreatePlatformRoleRequest } from "./role";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.RoleService
 */
export interface IRoleServiceClient {
    /**
     * @generated from protobuf rpc: CreatePlatformRole(api.CreatePlatformRoleRequest) returns (api.CreatePlatformRoleResult);
     */
    createPlatformRole(input: CreatePlatformRoleRequest, options?: RpcOptions): UnaryCall<CreatePlatformRoleRequest, CreatePlatformRoleResult>;
    /**
     * @generated from protobuf rpc: CreateOrganisationRole(api.CreateOrganisationRoleRequest) returns (api.CreateOrganisationRoleResult);
     */
    createOrganisationRole(input: CreateOrganisationRoleRequest, options?: RpcOptions): UnaryCall<CreateOrganisationRoleRequest, CreateOrganisationRoleResult>;
    /**
     * @generated from protobuf rpc: CreateProjectRole(api.CreateProjectRoleRequest) returns (api.CreateProjectRoleResult);
     */
    createProjectRole(input: CreateProjectRoleRequest, options?: RpcOptions): UnaryCall<CreateProjectRoleRequest, CreateProjectRoleResult>;
    /**
     * @generated from protobuf rpc: UpdatePlatformRole(api.UpdatePlatformRoleRequest) returns (api.UpdatePlatformRoleResult);
     */
    updatePlatformRole(input: UpdatePlatformRoleRequest, options?: RpcOptions): UnaryCall<UpdatePlatformRoleRequest, UpdatePlatformRoleResult>;
    /**
     * @generated from protobuf rpc: UpdateOrganisationRole(api.UpdateOrganisationRoleRequest) returns (api.UpdateOrganisationRoleResult);
     */
    updateOrganisationRole(input: UpdateOrganisationRoleRequest, options?: RpcOptions): UnaryCall<UpdateOrganisationRoleRequest, UpdateOrganisationRoleResult>;
    /**
     * @generated from protobuf rpc: UpdateProjectRole(api.UpdateProjectRoleRequest) returns (api.UpdateProjectRoleResult);
     */
    updateProjectRole(input: UpdateProjectRoleRequest, options?: RpcOptions): UnaryCall<UpdateProjectRoleRequest, UpdateProjectRoleResult>;
    /**
     * @generated from protobuf rpc: DeleteAllPlatformRoles(api.DeleteAllPlatformRolesRequest) returns (api.DeleteAllPlatformRolesResult);
     */
    deleteAllPlatformRoles(input: DeleteAllPlatformRolesRequest, options?: RpcOptions): UnaryCall<DeleteAllPlatformRolesRequest, DeleteAllPlatformRolesResult>;
    /**
     * @generated from protobuf rpc: DeletePlatformRole(api.DeletePlatformRoleRequest) returns (api.DeletePlatformRoleResult);
     */
    deletePlatformRole(input: DeletePlatformRoleRequest, options?: RpcOptions): UnaryCall<DeletePlatformRoleRequest, DeletePlatformRoleResult>;
    /**
     * @generated from protobuf rpc: DeleteOrganisationRole(api.DeleteOrganisationRoleRequest) returns (api.DeleteOrganisationRoleResult);
     */
    deleteOrganisationRole(input: DeleteOrganisationRoleRequest, options?: RpcOptions): UnaryCall<DeleteOrganisationRoleRequest, DeleteOrganisationRoleResult>;
    /**
     * @generated from protobuf rpc: DeleteProjectRole(api.DeleteProjectRoleRequest) returns (api.DeleteProjectRoleResult);
     */
    deleteProjectRole(input: DeleteProjectRoleRequest, options?: RpcOptions): UnaryCall<DeleteProjectRoleRequest, DeleteProjectRoleResult>;
    /**
     * @generated from protobuf rpc: GetPlatformRole(api.GetPlatformRoleRequest) returns (api.GetPlatformRoleResult);
     */
    getPlatformRole(input: GetPlatformRoleRequest, options?: RpcOptions): UnaryCall<GetPlatformRoleRequest, GetPlatformRoleResult>;
    /**
     * @generated from protobuf rpc: GetOrganisationRole(api.GetOrganisationRoleRequest) returns (api.GetOrganisationRoleResult);
     */
    getOrganisationRole(input: GetOrganisationRoleRequest, options?: RpcOptions): UnaryCall<GetOrganisationRoleRequest, GetOrganisationRoleResult>;
    /**
     * @generated from protobuf rpc: GetProjectRole(api.GetProjectRoleRequest) returns (api.GetProjectRoleResult);
     */
    getProjectRole(input: GetProjectRoleRequest, options?: RpcOptions): UnaryCall<GetProjectRoleRequest, GetProjectRoleResult>;
    /**
     * @generated from protobuf rpc: ListPlatformRoles(api.ListPlatformRolesRequest) returns (api.ListPlatformRolesResult);
     */
    listPlatformRoles(input: ListPlatformRolesRequest, options?: RpcOptions): UnaryCall<ListPlatformRolesRequest, ListPlatformRolesResult>;
    /**
     * @generated from protobuf rpc: ListOrganisationRoles(api.ListOrganisationRolesRequest) returns (api.ListOrganisationRolesResult);
     */
    listOrganisationRoles(input: ListOrganisationRolesRequest, options?: RpcOptions): UnaryCall<ListOrganisationRolesRequest, ListOrganisationRolesResult>;
    /**
     * @generated from protobuf rpc: ListProjectRoles(api.ListProjectRolesRequest) returns (api.ListProjectRolesResult);
     */
    listProjectRoles(input: ListProjectRolesRequest, options?: RpcOptions): UnaryCall<ListProjectRolesRequest, ListProjectRolesResult>;
    /**
     * @generated from protobuf rpc: PutRoleExternalPermissions(api.PutRoleExternalPermissionsRequest) returns (api.PutRoleExternalPermissionsResult);
     */
    putRoleExternalPermissions(input: PutRoleExternalPermissionsRequest, options?: RpcOptions): UnaryCall<PutRoleExternalPermissionsRequest, PutRoleExternalPermissionsResult>;
    /**
     * @generated from protobuf rpc: DeleteRoleExternalPermissions(api.DeleteRoleExternalPermissionsRequest) returns (api.DeleteRoleExternalPermissionsResult);
     */
    deleteRoleExternalPermissions(input: DeleteRoleExternalPermissionsRequest, options?: RpcOptions): UnaryCall<DeleteRoleExternalPermissionsRequest, DeleteRoleExternalPermissionsResult>;
    /**
     * @generated from protobuf rpc: PropagateRolesOnResource(api.PropagateRolesOnResourceRequest) returns (api.PropagateRolesOnResourceResult);
     */
    propagateRolesOnResource(input: PropagateRolesOnResourceRequest, options?: RpcOptions): UnaryCall<PropagateRolesOnResourceRequest, PropagateRolesOnResourceResult>;
    /**
     * @generated from protobuf rpc: DeleteRolesOnResource(api.DeleteRolesOnResourceRequest) returns (api.DeleteRolesOnResourceResult);
     */
    deleteRolesOnResource(input: DeleteRolesOnResourceRequest, options?: RpcOptions): UnaryCall<DeleteRolesOnResourceRequest, DeleteRolesOnResourceResult>;
    /**
     * @generated from protobuf rpc: GetRoleResourceTypes(api.GetRoleResourceTypesRequest) returns (api.GetRoleResourceTypesResult);
     */
    getRoleResourceTypes(input: GetRoleResourceTypesRequest, options?: RpcOptions): UnaryCall<GetRoleResourceTypesRequest, GetRoleResourceTypesResult>;
}
/**
 * @generated from protobuf service api.RoleService
 */
export class RoleServiceClient implements IRoleServiceClient, ServiceInfo {
    typeName = RoleService.typeName;
    methods = RoleService.methods;
    options = RoleService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: CreatePlatformRole(api.CreatePlatformRoleRequest) returns (api.CreatePlatformRoleResult);
     */
    createPlatformRole(input: CreatePlatformRoleRequest, options?: RpcOptions): UnaryCall<CreatePlatformRoleRequest, CreatePlatformRoleResult> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreatePlatformRoleRequest, CreatePlatformRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: CreateOrganisationRole(api.CreateOrganisationRoleRequest) returns (api.CreateOrganisationRoleResult);
     */
    createOrganisationRole(input: CreateOrganisationRoleRequest, options?: RpcOptions): UnaryCall<CreateOrganisationRoleRequest, CreateOrganisationRoleResult> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateOrganisationRoleRequest, CreateOrganisationRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: CreateProjectRole(api.CreateProjectRoleRequest) returns (api.CreateProjectRoleResult);
     */
    createProjectRole(input: CreateProjectRoleRequest, options?: RpcOptions): UnaryCall<CreateProjectRoleRequest, CreateProjectRoleResult> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<CreateProjectRoleRequest, CreateProjectRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: UpdatePlatformRole(api.UpdatePlatformRoleRequest) returns (api.UpdatePlatformRoleResult);
     */
    updatePlatformRole(input: UpdatePlatformRoleRequest, options?: RpcOptions): UnaryCall<UpdatePlatformRoleRequest, UpdatePlatformRoleResult> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<UpdatePlatformRoleRequest, UpdatePlatformRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: UpdateOrganisationRole(api.UpdateOrganisationRoleRequest) returns (api.UpdateOrganisationRoleResult);
     */
    updateOrganisationRole(input: UpdateOrganisationRoleRequest, options?: RpcOptions): UnaryCall<UpdateOrganisationRoleRequest, UpdateOrganisationRoleResult> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<UpdateOrganisationRoleRequest, UpdateOrganisationRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: UpdateProjectRole(api.UpdateProjectRoleRequest) returns (api.UpdateProjectRoleResult);
     */
    updateProjectRole(input: UpdateProjectRoleRequest, options?: RpcOptions): UnaryCall<UpdateProjectRoleRequest, UpdateProjectRoleResult> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<UpdateProjectRoleRequest, UpdateProjectRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteAllPlatformRoles(api.DeleteAllPlatformRolesRequest) returns (api.DeleteAllPlatformRolesResult);
     */
    deleteAllPlatformRoles(input: DeleteAllPlatformRolesRequest, options?: RpcOptions): UnaryCall<DeleteAllPlatformRolesRequest, DeleteAllPlatformRolesResult> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteAllPlatformRolesRequest, DeleteAllPlatformRolesResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeletePlatformRole(api.DeletePlatformRoleRequest) returns (api.DeletePlatformRoleResult);
     */
    deletePlatformRole(input: DeletePlatformRoleRequest, options?: RpcOptions): UnaryCall<DeletePlatformRoleRequest, DeletePlatformRoleResult> {
        const method = this.methods[7], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeletePlatformRoleRequest, DeletePlatformRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteOrganisationRole(api.DeleteOrganisationRoleRequest) returns (api.DeleteOrganisationRoleResult);
     */
    deleteOrganisationRole(input: DeleteOrganisationRoleRequest, options?: RpcOptions): UnaryCall<DeleteOrganisationRoleRequest, DeleteOrganisationRoleResult> {
        const method = this.methods[8], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteOrganisationRoleRequest, DeleteOrganisationRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteProjectRole(api.DeleteProjectRoleRequest) returns (api.DeleteProjectRoleResult);
     */
    deleteProjectRole(input: DeleteProjectRoleRequest, options?: RpcOptions): UnaryCall<DeleteProjectRoleRequest, DeleteProjectRoleResult> {
        const method = this.methods[9], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteProjectRoleRequest, DeleteProjectRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetPlatformRole(api.GetPlatformRoleRequest) returns (api.GetPlatformRoleResult);
     */
    getPlatformRole(input: GetPlatformRoleRequest, options?: RpcOptions): UnaryCall<GetPlatformRoleRequest, GetPlatformRoleResult> {
        const method = this.methods[10], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetPlatformRoleRequest, GetPlatformRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetOrganisationRole(api.GetOrganisationRoleRequest) returns (api.GetOrganisationRoleResult);
     */
    getOrganisationRole(input: GetOrganisationRoleRequest, options?: RpcOptions): UnaryCall<GetOrganisationRoleRequest, GetOrganisationRoleResult> {
        const method = this.methods[11], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetOrganisationRoleRequest, GetOrganisationRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetProjectRole(api.GetProjectRoleRequest) returns (api.GetProjectRoleResult);
     */
    getProjectRole(input: GetProjectRoleRequest, options?: RpcOptions): UnaryCall<GetProjectRoleRequest, GetProjectRoleResult> {
        const method = this.methods[12], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetProjectRoleRequest, GetProjectRoleResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ListPlatformRoles(api.ListPlatformRolesRequest) returns (api.ListPlatformRolesResult);
     */
    listPlatformRoles(input: ListPlatformRolesRequest, options?: RpcOptions): UnaryCall<ListPlatformRolesRequest, ListPlatformRolesResult> {
        const method = this.methods[13], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListPlatformRolesRequest, ListPlatformRolesResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ListOrganisationRoles(api.ListOrganisationRolesRequest) returns (api.ListOrganisationRolesResult);
     */
    listOrganisationRoles(input: ListOrganisationRolesRequest, options?: RpcOptions): UnaryCall<ListOrganisationRolesRequest, ListOrganisationRolesResult> {
        const method = this.methods[14], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListOrganisationRolesRequest, ListOrganisationRolesResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: ListProjectRoles(api.ListProjectRolesRequest) returns (api.ListProjectRolesResult);
     */
    listProjectRoles(input: ListProjectRolesRequest, options?: RpcOptions): UnaryCall<ListProjectRolesRequest, ListProjectRolesResult> {
        const method = this.methods[15], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListProjectRolesRequest, ListProjectRolesResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: PutRoleExternalPermissions(api.PutRoleExternalPermissionsRequest) returns (api.PutRoleExternalPermissionsResult);
     */
    putRoleExternalPermissions(input: PutRoleExternalPermissionsRequest, options?: RpcOptions): UnaryCall<PutRoleExternalPermissionsRequest, PutRoleExternalPermissionsResult> {
        const method = this.methods[16], opt = this._transport.mergeOptions(options);
        return stackIntercept<PutRoleExternalPermissionsRequest, PutRoleExternalPermissionsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteRoleExternalPermissions(api.DeleteRoleExternalPermissionsRequest) returns (api.DeleteRoleExternalPermissionsResult);
     */
    deleteRoleExternalPermissions(input: DeleteRoleExternalPermissionsRequest, options?: RpcOptions): UnaryCall<DeleteRoleExternalPermissionsRequest, DeleteRoleExternalPermissionsResult> {
        const method = this.methods[17], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteRoleExternalPermissionsRequest, DeleteRoleExternalPermissionsResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: PropagateRolesOnResource(api.PropagateRolesOnResourceRequest) returns (api.PropagateRolesOnResourceResult);
     */
    propagateRolesOnResource(input: PropagateRolesOnResourceRequest, options?: RpcOptions): UnaryCall<PropagateRolesOnResourceRequest, PropagateRolesOnResourceResult> {
        const method = this.methods[18], opt = this._transport.mergeOptions(options);
        return stackIntercept<PropagateRolesOnResourceRequest, PropagateRolesOnResourceResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DeleteRolesOnResource(api.DeleteRolesOnResourceRequest) returns (api.DeleteRolesOnResourceResult);
     */
    deleteRolesOnResource(input: DeleteRolesOnResourceRequest, options?: RpcOptions): UnaryCall<DeleteRolesOnResourceRequest, DeleteRolesOnResourceResult> {
        const method = this.methods[19], opt = this._transport.mergeOptions(options);
        return stackIntercept<DeleteRolesOnResourceRequest, DeleteRolesOnResourceResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: GetRoleResourceTypes(api.GetRoleResourceTypesRequest) returns (api.GetRoleResourceTypesResult);
     */
    getRoleResourceTypes(input: GetRoleResourceTypesRequest, options?: RpcOptions): UnaryCall<GetRoleResourceTypesRequest, GetRoleResourceTypesResult> {
        const method = this.methods[20], opt = this._transport.mergeOptions(options);
        return stackIntercept<GetRoleResourceTypesRequest, GetRoleResourceTypesResult>("unary", this._transport, method, opt, input);
    }
}
