UNPKG

@shelltender/server

Version:

Server-side terminal session management for Shelltender

36 lines 1.72 kB
import { EventEmitter } from 'events'; import { TerminalSession, SessionOptions } from '@shelltender/core'; import { SessionStore } from './SessionStore.js'; import { ISessionManager } from './interfaces/ISessionManager.js'; export interface SessionMetadata { id: string; command: string; args: string[]; createdAt: Date; isActive: boolean; } export declare class SessionManager extends EventEmitter implements ISessionManager { private sessions; private sessionStore; private restoredSessions; constructor(sessionStore: SessionStore); private restoreSessions; private setupPtyHandlers; createSession(options?: SessionOptions): TerminalSession; getSession(sessionId: string): TerminalSession | null; writeToSession(sessionId: string, data: string): boolean; sendCommand(sessionId: string, command: string): boolean; sendRawInput(sessionId: string, data: string): boolean; sendKey(sessionId: string, key: 'ctrl-c' | 'ctrl-d' | 'ctrl-z' | 'ctrl-r' | 'tab' | 'escape' | 'up' | 'down' | 'left' | 'right'): boolean; resizeSession(sessionId: string, cols: number, rows: number): boolean; addClient(sessionId: string, clientId: string): void; removeClient(sessionId: string, clientId: string): void; getAllSessions(): TerminalSession[]; killSession(sessionId: string): boolean; onData(callback: (sessionId: string, data: string, metadata?: any) => void): () => void; onSessionEnd(callback: (sessionId: string) => void): () => void; getActiveSessionIds(): string[]; getSessionMetadata(sessionId: string): SessionMetadata | null; getAllSessionMetadata(): SessionMetadata[]; } //# sourceMappingURL=SessionManager.d.ts.map