export interface TerminalShell { path: string; args: string[]; name: string; } export interface TerminalActivity { state: 'idle' | 'busy' | 'unknown'; revision: number; } export interface RemoteTerminalSpec { argv: readonly string[]; cwd: string; cols: number; rows: number; terminalType: string; env: Record; signal: AbortSignal; } export interface RemoteTerminalProcess { output: AsyncIterable; write(data: string): void | Promise; resize(cols: number, rows: number): void | Promise; terminate(): void | Promise; completed: Promise<{ exitCode: number | null; }>; inspectActivity?(): Promise; } /** Injectable process seam; shell discovery stays in the same execution environment. */ export type RemoteTerminalSpawner = ((spec: RemoteTerminalSpec) => Promise) & { shells?(signal: AbortSignal): Promise; }; export interface HostSubprocessLike { spawnTerminal(spec: Record): Promise; terminalEnvironment?(signal?: AbortSignal): Promise<{ platform: 'posix' | 'windows'; defaultShell?: string; }>; resolveExecutable?(file: string, env?: Record, signal?: AbortSignal): Promise; } export declare function discoverTerminalShells(provider?: HostSubprocessLike, signal?: AbortSignal): Promise; /** Compatibility fallback only: pipes cannot provide PTY resize or job control. */ export declare function pipeTerminalSpawner(): RemoteTerminalSpawner; /** Reuse official PTY, shell activity integration and process-range termination. */ export declare function subprocessTerminalSpawner(subprocess: HostSubprocessLike): RemoteTerminalSpawner; //# sourceMappingURL=remote-terminal-provider.d.ts.map