UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

41 lines 1.67 kB
import type { P2PCoordinator } from '../coordinator.js'; import { type IDiscoveryDiscoverer, type DiscoveryCriteria, type DiscoveryAdvertisement, type DiscoveryOptions, type DiscoverySubscription, type SubscriptionOptions } from './types.js'; export declare class DHTDiscoverer implements IDiscoveryDiscoverer { private readonly coordinator; private readonly cache; private readonly subscriptions; private readonly rateLimitTracker; private started; private cleanupTimer?; private cacheStats; constructor(coordinator: P2PCoordinator); discover(criteria: DiscoveryCriteria, options?: Partial<DiscoveryOptions>): Promise<DiscoveryAdvertisement[]>; subscribe(criteria: DiscoveryCriteria, callback: (advertisement: DiscoveryAdvertisement) => void, subscriptionOptions?: SubscriptionOptions): Promise<DiscoverySubscription>; unsubscribe(subscriptionId: string): Promise<void>; getActiveSubscriptions(): string[]; clearCache(protocol?: string): void; getCacheStats(): { size: number; hits: number; misses: number; hitRate: number; }; start(): Promise<void>; stop(): Promise<void>; private handleGossipSubMessage; private criteriaToTopic; private getDHTKeys; private isValidAdvertisement; private matchesCriteria; private validateAdvertisementSecurity; private addToCache; private checkRateLimits; private cleanupCache; private cleanupSubscriptions; private calculateDistance; private toRadians; private generateSubscriptionId; private simpleHash; private updateCacheStats; } //# sourceMappingURL=dht-discoverer.d.ts.map