/// import EventEmitter from "node:events"; import * as Types from "../types"; import Storage from "./storage"; import DogmaSocket from "./socket"; import StateManager from "./state"; import Connections from "./connections"; import { DHTModel } from "./model"; type DHTParams = { connections: Connections; state: StateManager; storage: Storage; model: DHTModel; }; declare class DHT extends EventEmitter { connectionsBridge: Connections; stateBridge: StateManager; storageBridge: Storage; modelBridge: DHTModel; permissions: { [key in Types.DHT.Type]: Types.Connection.Group; }; peers: DogmaSocket[]; /** * */ constructor({ storage, state, connections, model }: DHTParams); /** * * @param {Array} peers array of active connections */ setPeers(peers: DogmaSocket[]): void; setPermission(type: Types.DHT.Type, level: Types.Connection.Group): void; announce(port: number): void; lookup(user_id: Types.User.Id, node_id?: Types.Node.Id): void; revoke(user_id: Types.User.Id, node_id?: Types.Node.Id): void; handleRequest(params: Types.DHT.Card, socket: DogmaSocket): Promise; _handleAnnounce({ from, request, }: Types.DHT.CardQuery): Promise; _handleLookup({ from, request, }: Types.DHT.CardQuery): Promise; _handleRevoke({ from, request, }: Types.DHT.CardQuery): void; _handlePeers({ from, request, }: Types.DHT.CardQuery): void; } export default DHT;