vibetunnel
Version:
Terminal sharing server with web interface - supports macOS, Linux, and headless environments
61 lines (60 loc) • 2.26 kB
TypeScript
import express from 'express';
import { createServer } from 'http';
import { WebSocketServer } from 'ws';
import { PtyManager } from './pty/index.js';
import { ActivityMonitor } from './services/activity-monitor.js';
import { BufferAggregator } from './services/buffer-aggregator.js';
import { ConfigService } from './services/config-service.js';
import { ControlDirWatcher } from './services/control-dir-watcher.js';
import { HQClient } from './services/hq-client.js';
import { PushNotificationService } from './services/push-notification-service.js';
import { RemoteRegistry } from './services/remote-registry.js';
import { StreamWatcher } from './services/stream-watcher.js';
import { TerminalManager } from './services/terminal-manager.js';
export declare function isShuttingDown(): boolean;
export declare function setShuttingDown(value: boolean): void;
interface Config {
port: number | null;
bind: string | null;
enableSSHKeys: boolean;
disallowUserPassword: boolean;
noAuth: boolean;
isHQMode: boolean;
hqUrl: string | null;
hqUsername: string | null;
hqPassword: string | null;
remoteName: string | null;
allowInsecureHQ: boolean;
showHelp: boolean;
showVersion: boolean;
debug: boolean;
pushEnabled: boolean;
vapidEmail: string | null;
generateVapidKeys: boolean;
bellNotificationsEnabled: boolean;
allowLocalBypass: boolean;
localAuthToken: string | null;
enableTailscaleServe: boolean;
noHqAuth: boolean;
enableMDNS: boolean;
}
interface AppInstance {
app: express.Application;
server: ReturnType<typeof createServer>;
wss: WebSocketServer;
startServer: () => void;
config: Config;
configService: ConfigService;
ptyManager: PtyManager;
terminalManager: TerminalManager;
streamWatcher: StreamWatcher;
remoteRegistry: RemoteRegistry | null;
hqClient: HQClient | null;
controlDirWatcher: ControlDirWatcher | null;
bufferAggregator: BufferAggregator | null;
activityMonitor: ActivityMonitor;
pushNotificationService: PushNotificationService | null;
}
export declare function createApp(): Promise<AppInstance>;
export declare function startVibeTunnelServer(): Promise<void>;
export * from './version.js';