import { BehaviorSubject } from 'rxjs'; import type { IListenerMetaData, INodeMetaData, IServiceMetaData, IWorkerMetaData } from '../../interface/discovery.js'; import type { Election } from '../Election.js'; export interface IDiscoveryInfo { version: string; type: string; } declare abstract class Discovery { constructor(); abstract getAllServiceList(): Promise; abstract getServiceList(name: string): Promise; abstract getAllEndpointList(): Promise; abstract getEndpointList(service: string): Promise; abstract getNodeList(): Promise; abstract getAllWorkerList(): Promise; abstract getWorkerList(worker: string): Promise; abstract getServiceById(id: string): Promise; abstract getWorkerById(id: string): Promise; abstract getNodeById(id: string): Promise; abstract getEndpointById(id: string): Promise; abstract registerWorker(worker: IWorkerMetaData): Promise; abstract registerService(service: IServiceMetaData): Promise; abstract registerEndpoint(info: IListenerMetaData): Promise; abstract registerNode(node: INodeMetaData): Promise; abstract unregisterWorker(id: string): Promise; abstract unregisterService(id: string): Promise; abstract unregisterEndPoint(id: string): Promise; abstract unregisterNode(id: string): Promise; abstract createElection(name: string): Election; protected abstract startup(): Promise; protected abstract shutdown(): Promise; connect(): Promise; disconnect(): Promise; get serviceSubject(): BehaviorSubject; get listenerSubject(): BehaviorSubject; get workerSubject(): BehaviorSubject; get nodeSubject(): BehaviorSubject; abstract get version(): string; abstract get info(): IDiscoveryInfo; protected serviceSubject_: BehaviorSubject; protected listenerSubject_: BehaviorSubject; protected nodeSubject_: BehaviorSubject; protected workerSubject_: BehaviorSubject; } export { Discovery }; //# sourceMappingURL=Discovery.d.ts.map