lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
41 lines • 1.67 kB
TypeScript
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