webssh2-server
Version: 
A Websocket to SSH2 gateway using xterm.js, socket.io, ssh2
50 lines (49 loc) • 1.52 kB
TypeScript
/**
 * Terminal service implementation
 */
import type { TerminalService, Terminal, TerminalOptions, Dimensions, ServiceDependencies } from '../interfaces.js';
import type { SessionId } from '../../types/branded.js';
import type { Result } from '../../state/types.js';
import type { SessionStore } from '../../state/store.js';
export declare class TerminalServiceImpl implements TerminalService {
    private readonly deps;
    private readonly store;
    private readonly registry;
    private readonly defaultRows;
    private readonly defaultCols;
    private readonly defaultTerm;
    constructor(deps: ServiceDependencies, store: SessionStore);
    /**
     * Create a terminal
     */
    create(options: TerminalOptions): Result<Terminal>;
    /**
     * Resize terminal
     */
    resize(sessionId: SessionId, dimensions: Dimensions): Result<void>;
    /**
     * Write to terminal
     * Note: This updates metadata only - actual data handling is done by streams
     */
    write(sessionId: SessionId, _data: string): Result<void>;
    /**
     * Destroy terminal
     */
    destroy(sessionId: SessionId): Result<void>;
    /**
     * Get terminal info
     */
    getTerminal(sessionId: SessionId): Result<Terminal | null>;
    /**
     * Update terminal environment
     */
    updateEnvironment(sessionId: SessionId, env: Record<string, string>): Result<void>;
    /**
     * Get all terminals
     */
    getAllTerminals(): Terminal[];
    /**
     * Clean up all terminals
     */
    cleanup(): void;
}