@itwin/core-common
Version:
iTwin.js components common to frontend and backend
49 lines • 2.57 kB
TypeScript
/** @packageDocumentation
* @module RpcInterface
*/
import { RpcRoutingToken } from "./RpcRoutingToken";
import { RpcInterface, RpcInterfaceDefinition, RpcInterfaceImplementation } from "../../RpcInterface";
import { RpcInterfaceEndpoints } from "../../RpcManager";
/** @internal */
export declare const REGISTRY: unique symbol;
/** @internal */
export declare const OPERATION: unique symbol;
/** @internal */
export declare const POLICY: unique symbol;
/** @internal */
export declare const INSTANCE: unique symbol;
/** @internal */
export declare const CURRENT_REQUEST: unique symbol;
/** @internal */
export declare const CURRENT_INVOCATION: unique symbol;
/** @internal */
export declare class RpcRegistry {
private static _instance;
private constructor();
static get instance(): RpcRegistry;
lookupInterfaceDefinition(name: string): RpcInterfaceDefinition;
describeAvailableEndpoints(): Promise<RpcInterfaceEndpoints[]>;
getClientForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>, routing?: RpcRoutingToken): T;
getImplForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): T;
lookupImpl<T extends RpcInterface>(interfaceName: string): T;
registerImpl<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, implementation: RpcInterfaceImplementation<TImplementation>): void;
unregisterImpl<TDefinition extends RpcInterface>(definition: RpcInterfaceDefinition<TDefinition>): void;
supplyImplInstance<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, instance: TImplementation): void;
isRpcInterfaceInitialized<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): boolean;
initializeRpcInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): void;
terminateRpcInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): void;
definitionClasses: Map<string, RpcInterfaceDefinition>;
proxies: Map<string, Map<number, RpcInterface>>;
implementations: Map<string, RpcInterface>;
suppliedImplementations: Map<string, RpcInterface>;
implementationClasses: Map<string, RpcInterfaceImplementation>;
id: () => number;
private instantiateImpl;
private instantiateClient;
private interceptOperation;
private checkInitialized;
private configureOperations;
private purgeClient;
private notifyInitialize;
}
//# sourceMappingURL=RpcRegistry.d.ts.map