UNPKG

@devgrid/netron

Version:

A powerful TypeScript library for building distributed systems with event bus, streaming capabilities, and remote object invocation. Features WebSocket-based bidirectional communication between Node.js and browser environments, service discovery, and type

31 lines (30 loc) 1.55 kB
import { Netron } from './netron'; import { Interface } from './interface'; import { Definition } from './definition'; import { Abilities, EventSubscriber } from './types'; export declare abstract class AbstractPeer { netron: Netron; id: string; abilities: Abilities; protected interfaces: Map<string, { instance: Interface; refCount: number; }>; constructor(netron: Netron, id: string); abstract set(defId: string, name: string, value: any): Promise<void>; abstract get(defId: string, name: string): Promise<any>; abstract call(defId: string, method: string, args: any[]): Promise<any>; abstract subscribe(eventName: string, handler: EventSubscriber): Promise<void> | void; abstract unsubscribe(eventName: string, handler: EventSubscriber): Promise<void> | void; abstract exposeService(instance: any): Promise<Definition>; abstract unexposeService(ctxId: string, releaseOriginated?: boolean): Promise<void>; unexposeAllServices(): void; abstract getServiceNames(): string[]; queryInterface<T>(qualifiedName: string): Promise<T>; queryInterfaceByDefId<T>(defId: string, def?: Definition): T; releaseInterface<T>(iInstance: T, released?: Set<string>): Promise<void>; protected abstract releaseInterfaceInternal(iInstance: any): Promise<void>; protected abstract getDefinitionById(defId: string): Definition; protected abstract getDefinitionByServiceName(name: string): Definition; protected findLatestServiceVersion(serviceName: string): Definition; }