import { BehaviorSubject } from 'rxjs'; import type { ILabels } from '../../../interface/config.js'; import { type IProviderMetaData } from '../../../interface/rpc.js'; import { LabelFilter } from '../../../utility/LabelFilter.js'; import { QueueExecutor } from '../../../utility/QueueExecutor.js'; import type { ListenerCallback } from '../Listener.js'; import type { Route } from '../Route.js'; import type { ConvertRouteMethod, ConvertRPCRouteMethod, ProviderManager } from './ProviderManager.js'; import type { ProviderStrategy } from './ProviderStrategy.js'; import { RPCSender } from './RPCSender.js'; declare class Provider { constructor(name: string, filter?: LabelFilter, strategy?: ProviderStrategy, manager?: ProviderManager | null, callback?: ListenerCallback); shutdown(): Promise; startup(): Promise; get name(): string; get senders(): Map; get isStarted(): boolean; get rpc(): (toId?: string | null) => ConvertRPCRouteMethod; get notify(): (toId?: string | null) => ConvertRouteMethod; get broadcast(): () => ConvertRouteMethod; private createSender; private selectSender; private removeSender; isSatisfy(labels: ILabels): boolean; getSender(targetId: string): RPCSender | null; randomSender(): Promise; get metaData(): IProviderMetaData; get senderSubject(): BehaviorSubject; private getSenderByListenerId; private get senderList_(); get logCategory(): string; private formatLogListener; get pvdManager(): ProviderManager; get id(): string; private id_; private name_; private senders_; private subManager_; private filter_; private routeCallback_; private ref_; private pvdManager_; protected strategy_: ProviderStrategy; protected senderSubject_: BehaviorSubject; protected executor_: QueueExecutor>; } export { Provider }; //# sourceMappingURL=Provider.d.ts.map