UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

41 lines 2.55 kB
/** @packageDocumentation * @module RpcInterface */ import { IModelRpcProps } from "./IModel"; import { RpcInterface, RpcInterfaceDefinition, RpcInterfaceImplementation } from "./RpcInterface"; import { RpcRoutingToken } from "./rpc/core/RpcRoutingToken"; /** Describes the endpoints of an RPC interface. * @beta */ export interface RpcInterfaceEndpoints { interfaceName: string; interfaceVersion: string; operationNames: string[]; compatible: boolean; } /** RPC interface management is concerned with coordination of access and configuration for RPC interfaces. * @beta */ export declare class RpcManager { /** Initializes an RPC interface class. * @note This function must be called on the frontend and on the backend for each RPC interface class used by an application. */ static initializeInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): void; /** Terminates an RPC interface class. */ static terminateInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): void; /** Returns the RPC client instance for the frontend. */ static getClientForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>, routing?: RpcRoutingToken): T; /** Register the RPC implementation class for the backend. */ static registerImpl<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, implementation: RpcInterfaceImplementation<TImplementation>): void; /** Supply the instance of the RPC interface implementation class for the backend (optional). */ static supplyImplInstance<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, instance: TImplementation): void; /** Unregister the RPC implementation class for the backend. */ static unregisterImpl<TDefinition extends RpcInterface>(definition: RpcInterfaceDefinition<TDefinition>): void; /** Describes the RPC interfaces and endpoints that are currently available from the backend. * @note Some endpoints may be marked incompatible if the frontend expected a different interface declaration than the backend supplied. RPC operations against an incompatible interface will fail. */ static describeAvailableEndpoints(): Promise<RpcInterfaceEndpoints[]>; /** Configures RPC protocols that employ iModel-based routing infrastructure. */ static setIModel(props: IModelRpcProps): void; } //# sourceMappingURL=RpcManager.d.ts.map