import type { IncomingMessage } from "node:http"; import type { Duplex } from "node:stream"; interface PtyProcess { write(data: string): void; resize(columns: number, rows: number): void; kill(signal?: string): void; onData(listener: (data: string) => void): { dispose(): void; }; onExit(listener: (event: { exitCode: number; signal?: number; }) => void): { dispose(): void; }; } interface PtyModule { spawn(file: string, args: string[], options: { name: string; cols: number; rows: number; cwd: string; env: NodeJS.ProcessEnv; }): PtyProcess; } interface TerminalServiceOptions { workspace: string; manager: { id: string; version: string; }; available: () => boolean; now?: () => number; loadPty?: () => Promise; } /** 管理服务拥有 PTY;每个已授权的本机 WebSocket 独占一个 shell,断线即销毁。 */ export declare class ControlTerminalService { private readonly options; private readonly server; private readonly tickets; private readonly sessions; private readonly now; private readonly ptyPresent; private closed; constructor(options: TerminalServiceOptions); status(): { available: boolean; localOnly: true; activeSessions: number; }; issueTicket(): { ticket: string; expiresAt: number; }; handleUpgrade(request: IncomingMessage, socket: Duplex, head: Buffer): boolean; close(): void; private open; private consumeTicket; private sweepTickets; private send; } export {}; //# sourceMappingURL=terminal-service.d.ts.map