import type { Logger } from '../types.js'; export declare const DEFAULT_LAN_DISCOVERY_PORT = 47915; export interface DiscoveredLanPeer { nodeId: string; name: string; role: string; url: string; address: string; tag?: string; } export interface LanBeaconOptions { nodeId: string; name: string; role: string; /** The mesh (HTTP+SSE) port this node advertises. */ meshPort: number; /** Only match peers carrying this tag (mirrors Tailscale --tag). */ tag?: string; /** Whether this node's mesh requires a token (informational only). */ auth?: boolean; /** UDP port to broadcast/listen on (default 47915). */ discoveryPort?: number; /** Broadcast cadence (default 5s). */ intervalMs?: number; logger?: Logger; /** Called when a *different* node's beacon is heard. */ onPeer: (peer: DiscoveredLanPeer) => void; } /** Periodically broadcasts a discovery beacon and reports peers it hears. */ export declare class LanBeacon { private opts; private sock?; private timer?; private readonly port; private readonly intervalMs; private stopped; constructor(opts: LanBeaconOptions); start(): void; private beaconPayload; private broadcast; private onMessage; stop(): void; }