@itwin/core-common
Version:
iTwin.js components common to frontend and backend
41 lines • 2.55 kB
TypeScript
/** @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