import type { ProviderDriver, WindowCreateOptions, WindowMutation } from "../provider-engine.js"; import type { ProviderDirectoryList, ProviderFileDeleteOptions, ProviderFileDeleteResult, ProviderFileMkdirOptions, ProviderFileMkdirResult, ProviderFileRenameOptions, ProviderFileRenameResult, ProviderFileStat, ProviderFileWriteOptions, ProviderFileWriteResult } from "@termfleet/core/contracts/files.js"; import type { Bounds, ProviderFilesystem, ProviderHealth, ProviderSnapshot, ProviderWindow, TerminalEffect, TerminalEffectKind } from "@termfleet/core/types.js"; import { type AgentSessionReadResult } from "@termfleet/core/internal/agent-session-tail.js"; import { type AgentSessionDetails } from "@termfleet/core/internal/agent-session.js"; import { type LifecycleSnapshot } from "@termfleet/core/internal/session-lifecycle.js"; export declare class TerminalAppDriver implements ProviderDriver { readonly kind: "terminal-app"; private readonly cwd; private readonly filesystemRoot; private readonly lifecycleStore; private readonly effects; private ttyByTerminalId; private lastNativeWindows; private lastSessionIdOverrides; private readonly claudeSessionIdByPid; private readonly codexSessionIdByPid; constructor({ cwd }: { cwd: string; }); initialize(): void; getHealth(): ProviderHealth; getLifecycle(): Promise; getSnapshot(): Promise>; getWindows(lifecycle: LifecycleSnapshot): ProviderWindow[]; private resolvePidKeyedSessionIds; private resolveClaudeSessionIdForPid; getDisplayBounds(): Bounds; getFilesystems(): ProviderFilesystem[]; createWindow(_options?: WindowCreateOptions): never; moveWindow({ bounds, id }: WindowMutation): { id: number; bounds: Bounds; }; setTerminalEffect({ durationMs, kind, terminalId }: { durationMs?: number; kind: TerminalEffectKind; terminalId: string; }): TerminalEffect; closeWindow(id: number): never; resizeDisplay(): Bounds; captureTerminal({ lines, terminalId }: { preserveEscapes?: boolean; terminalId: string; lines?: number; }): Promise; getAgentSession({ cwd, sessionId }: { cwd?: string; sessionId: string; }): Promise; getAgentSessionTailed({ cwd, sessionId }: { cwd?: string; sessionId: string; }): Promise; sendTerminalInput({ data, deadlineMs, terminalId }: { terminalId: string; data: string; deadlineMs?: number; submitMode?: "retry" | "single"; }): Promise<{ terminalId: string; bytes: number; delivery: string; }>; readFile({ path, terminalId }: { terminalId: string; path: string; }): Buffer; readFileByFilesystem({ filesystemId, length, offset, path }: { filesystemId: string; length?: number; offset?: number; path: string; }): Buffer; listDirectory({ path, terminalId }: { terminalId: string; path: string; }): ProviderDirectoryList; listDirectoryByFilesystem({ filesystemId, path, terminalId }: { filesystemId: string; path: string; terminalId?: string; }): ProviderDirectoryList; statFile({ path, terminalId }: { terminalId: string; path: string; }): ProviderFileStat; statFileByFilesystem({ filesystemId, path, terminalId }: { filesystemId: string; path: string; terminalId?: string; }): ProviderFileStat; writeFile(options: ProviderFileWriteOptions): ProviderFileWriteResult; writeFileByFilesystem(options: Omit & { filesystemId: string; }): ProviderFileWriteResult; deleteFile(options: ProviderFileDeleteOptions): ProviderFileDeleteResult; deleteFileByFilesystem(options: Omit & { filesystemId: string; }): ProviderFileDeleteResult; makeDirectory(options: ProviderFileMkdirOptions): ProviderFileMkdirResult; makeDirectoryByFilesystem(options: Omit & { filesystemId: string; }): ProviderFileMkdirResult; renameFile(options: ProviderFileRenameOptions): ProviderFileRenameResult; renameFileByFilesystem(options: Omit & { filesystemId: string; }): ProviderFileRenameResult; private requireOwnedFilesystem; private requireKnownTerminal; private observeLifecycle; }