import { EventEmitter } from 'events'; import { TunTap } from './TunTap.js'; export interface ManagedTunnel { id: string; tunnel: TunTap; name: string; fd: number; clients: Set; isReading: boolean; readInterval?: NodeJS.Timeout; } export declare class TunnelManager extends EventEmitter { private tunnels; private nextTunnelId; constructor(); createTunnel(name?: string): ManagedTunnel; getTunnel(tunnelId: string): ManagedTunnel | undefined; configureTunnel(tunnelId: string, address: string, mtu: number): Promise; addRoute(tunnelId: string, destination: string): Promise; sendPacket(tunnelId: string, data: Buffer): number; addClient(tunnelId: string, clientId: string): void; removeClient(tunnelId: string, clientId: string): void; closeTunnel(tunnelId: string): void; closeAllTunnels(): void; removeClientFromAllTunnels(clientId: string): void; private startReading; private stopReading; private generateTunnelId; getTunnelIds(): string[]; getTunnelInfo(tunnelId: string): { name: string; fd: number; clientCount: number; } | undefined; getAllTunnelInfo(): Array<{ id: string; name: string; fd: number; clientCount: number; }>; }