import type { ProviderDriver, ProviderSettingsUpdate, 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, TerminalThemeProfile } 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 type WeztermPane = { cwd?: string; pane_id: number; size?: { cols?: number; rows?: number; }; tab_id?: number; title?: string; window_id: number; window_title?: string; workspace?: string; }; export declare function selectOwnedWeztermPane({ paneId, panes, session, title }: { paneId?: number; panes: readonly WeztermPane[]; session?: string; title: string; }): WeztermPane | undefined; export type WeztermAttachmentOutcome = { kind: "attached"; paneId: number; } | { error?: unknown; kind: "not-spawned"; } | { error?: unknown; kind: "spawn-uncertain"; }; export declare function coordinateWeztermAttachment({ attempts, listPanes, retry, selectPane, spawnPane }: { attempts: number; listPanes: () => Promise; retry: () => Promise; selectPane: (panes: readonly WeztermPane[]) => WeztermPane | undefined; spawnPane: () => Promise; }): Promise; export declare class WeztermDriver implements ProviderDriver { readonly kind: "wezterm"; private readonly count; private readonly cwd; private readonly attachmentUncertain; private readonly attachmentTasks; private cachedPanes; private displayBounds; private readonly filesystemRoot; private readonly prefix; private terminalThemeProfile; private readonly weztermBin; private windows; private nextWindowId; private readonly lifecycleStore; private readonly effects; constructor({ count, cwd, prefix }: { count: number; cwd: string; prefix: string; }); initialize(): Promise; getHealth(): ProviderHealth; getLifecycle(): LifecycleSnapshot; getSnapshot(): Promise>; getWindows(lifecycle?: LifecycleSnapshot): ProviderWindow[]; getDisplayBounds(): Bounds; getFilesystems(): ProviderFilesystem[]; createWindow(options?: WindowCreateOptions): Promise<{ id: number; terminalId: string; bounds: Bounds; cwd: string; paneId?: number; windowId?: number; }>; moveWindow({ bounds, id }: WindowMutation): { id: number; bounds: Bounds; }; renameWindow({ id, name }: { id: number; name: string; }): { id: number; name: string; }; setTerminalEffect({ durationMs, kind, terminalId }: { durationMs?: number; kind: TerminalEffectKind; terminalId: string; }): TerminalEffect; closeWindow(id: number): { id: number; terminalId: string; }; updateProviderSettings(settings: ProviderSettingsUpdate): { terminalThemeProfile: TerminalThemeProfile; }; resizeDisplay(bounds: Bounds): Bounds; captureTerminal({ lines, terminalId }: { preserveEscapes?: boolean; terminalId: string; lines?: number; }): string; getAgentSession({ cwd, sessionId }: { cwd?: string; sessionId: string; }): Promise; getAgentSessionTailed({ cwd, sessionId }: { cwd?: string; sessionId: string; }): Promise; sendTerminalInput({ data, deadlineMs, submitMode, terminalId }: { terminalId: string; data: string; deadlineMs?: number; submitMode?: "retry" | "single"; }): Promise<{ terminalId: string; bytes: number; delivery: string; }>; interruptTerminal({ terminalId }: { terminalId: string; }): Promise; 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 nextBounds; private expandDisplayToFitWindows; private expandDisplayToFitWindow; private displayBoundsForWindows; private persistLayout; private ensureWindowSession; private createWindowSession; private queueWeztermWindowAttachment; private attachWeztermWindow; private finishWeztermAttachment; private refreshWeztermIds; private setWeztermWindowTitle; private safeListWeztermPanesAsync; private setNativeWindowBounds; private observeNativeWindowBounds; private windowTitle; private requireOwnedSession; private requireWindowState; private requireOwnedFilesystem; private defaultSession; private observeLifecycle; }