import { type CellSnapshot } from "./diff.js"; import type { SessionInfo } from "./types.js"; export interface SessionOptions { cols?: number; rows?: number; cwd?: string; env?: Record; } export declare class Session { readonly sessionId: string; readonly command: string; readonly args: string[]; readonly cols: number; readonly rows: number; readonly createdAt: string; private terminal; private ptyProcess; private status; private exitCode?; private signal?; private lastActivity; private lastOutput; private baseline?; private recorder?; constructor(command: string, args: string[], options?: SessionOptions); write(data: string): void; screenshot(): Buffer; screenshotRegion(startRow: number, startCol: number, endRow: number, endCol: number): Buffer; captureCurrentBuffer(): CellSnapshot[][]; captureBaseline(): { rows: number; cols: number; cells: number; }; diffBaseline(): { png: Buffer; changedCells: number; summary: string; }; getCellInfo(row: number, col: number, endCol?: number, compact?: boolean): object; getScrollbackText(lines?: number): string; startRecording(minIntervalMs?: number, maxDurationMs?: number): void; stopRecording(outputPath?: string): { type: "inline"; gif: Buffer; frameCount: number; durationMs: number; } | { type: "file"; path: string; frameCount: number; sizeBytes: number; durationMs: number; }; findColor(targetHex: string, target: "fg" | "bg", row?: number, col?: number): { row: number; col: number; } | null; findTextInViewport(text: string): { row: number; col: number; } | null; getBufferText(): string; getInfo(): SessionInfo; getPid(): number; getLastActivity(): number; getLastOutput(): number; close(): void; }