interface SyncedModel { id: string; name: string; } /** * TunnelRunner handles the polling and request processing loop. * It emits events that listeners (TUI or simple chalk output) can subscribe to. */ declare class TunnelRunner { private isRunning; private modelMap; private modelIds; /** * Start with a pre-discovered list of synced models. * Used by the TUI, which discovers models itself. */ start(syncedModels: SyncedModel[]): Promise; stop(): void; private buildModelMap; private pollLoop; private processRequest; private handleTextRequest; private handleImageRequest; private handleVideoRequest; private sleep; } export { TunnelRunner };