export interface TmuxResult { stdout: string; stderr: string; status: number; } export type TmuxRunner = (args: string[]) => TmuxResult; export interface TmuxPaneContext { socketPath: string; serverPid: number; serverStartedAt: number; sessionId: string; sessionCreatedAt: number; windowId: string; paneId: string; currentPath: string; dead: boolean; launchId: string; laneId: string; } export declare function tmuxExec(args: string[]): TmuxResult; export declare function paneLooksReady(captured: string): boolean; export declare function paneHasActiveTask(captured: string): boolean; export interface TmuxApi { newSession(session: string, cwd: string): TmuxResult; splitWindow(target: string, cwd: string): TmuxResult; sendKeys(target: string, ...keys: string[]): TmuxResult; sendText(target: string, text: string): TmuxResult; displayMessage(target: string, message: string): TmuxResult; capturePane(target: string, lines?: number): TmuxResult; killPane(target: string): TmuxResult; killSession(session: string): TmuxResult; paneDead(target: string): boolean; sessionExists(session: string): boolean; listSessions(): string[]; paneContext?(target: string): TmuxPaneContext | undefined; } export declare function makeTmux(runner?: TmuxRunner, env?: NodeJS.ProcessEnv): TmuxApi; export declare function makeTmuxForSocket(socketPath: string, runner?: TmuxRunner, env?: NodeJS.ProcessEnv): TmuxApi; export interface WaitForReadyOptions { /** Max time to wait in ms (default 60 000). */ timeoutMs?: number; /** Poll interval in ms (default 2 000). */ pollMs?: number; } /** * Block until the Copilot CLI in `target` pane is ready for input. * Returns `true` if ready, `false` on timeout. */ export declare function waitForReady(api: TmuxApi, target: string, options?: WaitForReadyOptions): Promise; export interface SendToWorkerOptions { rounds?: number; delayMs?: number; } export declare function sendToWorker(api: TmuxApi, target: string, text: string, options?: SendToWorkerOptions): Promise;