export type TerminalSessionStatus = "running" | "completed" | "error" | "killed" | "timed_out"; export interface TerminalSessionSnapshot { sessionId: string; ownerId: string; command: string; cwd: string; status: TerminalSessionStatus; startedAt: number; updatedAt: number; finishedAt?: number; exitCode?: number | null; signal?: NodeJS.Signals | null; droppedChars: number; } export interface TerminalPollResult extends TerminalSessionSnapshot { output: string; hasMore: boolean; } export interface TerminalSessionManagerOptions { maxSessionsPerOwner?: number; maxBufferedCharsPerSession?: number; maxRuntimeMs?: number; idleTimeoutMs?: number; completedSessionRetentionMs?: number; terminationGraceMs?: number; } export interface StartTerminalSessionInput { ownerId: string; command: string; cwd: string; env: Record; runtimeLimitMs?: number; } export interface PollTerminalSessionInput { ownerId: string; sessionId: string; waitMs?: number; maxOutputChars?: number; } export interface WriteTerminalSessionInput { ownerId: string; sessionId: string; chars: string; } export interface KillTerminalSessionInput { ownerId: string; sessionId: string; signal?: NodeJS.Signals; } export declare class TerminalSessionManager { private readonly sessions; private readonly ownerIndex; private readonly cleanupTimer; private readonly maxSessionsPerOwner; private readonly maxBufferedCharsPerSession; private readonly maxRuntimeMs; private readonly idleTimeoutMs; private readonly completedSessionRetentionMs; private readonly terminationGraceMs; constructor(options?: TerminalSessionManagerOptions); dispose(): void; startSession(input: StartTerminalSessionInput): TerminalSessionSnapshot; pollSession(input: PollTerminalSessionInput): Promise; writeSession(input: WriteTerminalSessionInput): TerminalSessionSnapshot; killSession(input: KillTerminalSessionInput): TerminalSessionSnapshot; listSessions(ownerId: string): TerminalSessionSnapshot[]; private waitForUpdate; private appendOutput; private finalizeRecord; private cleanupExpiredSessions; private deleteSession; private getOwnedRecord; private toSnapshot; private normalizeOwnerId; private safeKill; } export declare const getSharedTerminalSessionManager: () => TerminalSessionManager;