import { EventEmitter } from 'events'; export declare class TunTapClient extends EventEmitter { private socket; private isConnected; private pendingRequests; private messageBuffer; constructor(); connect(): Promise; private setupSocketHandlers; private processMessages; private handleMessage; private rejectPendingRequests; private sendRequest; private generateRequestId; createTunnel(name?: string): Promise; disconnect(): Promise; _configureTunnel(tunnelId: string, address: string, mtu: number): Promise; _addRoute(tunnelId: string, destination: string): Promise; _sendPacket(tunnelId: string, data: Buffer): Promise; _closeTunnel(tunnelId: string): Promise; } export declare class TunnelHandle extends EventEmitter { private client; private tunnelId; private tunnelName; private tunnelFd; private isClosed; constructor(client: TunTapClient, tunnelId: string, name: string, fd: number); get name(): string; get fd(): number; get id(): string; configure(address: string, mtu?: number): Promise; addRoute(destination: string): Promise; sendPacket(data: Buffer): Promise; close(): Promise; }