export type TmuxPane = { pane: number; id: string; rootPid?: number; dead: boolean; currentCommand: string; }; export type TmuxWindowSize = { width: number; height: number; }; export type TmuxCommand = { arguments?: string[]; program: string; }; export type CreateSessionOptions = { command?: TmuxCommand; cwd?: string; env?: Record; name: string; owner?: string; ownerOption?: string; panes: number; sessionOptions?: Record; settings?: Record; socket?: string; }; export declare function assertTmux(): void; export declare function targetForSession(sessionName: string): string; export declare function assertSession(name: string, socket?: string): void; export declare function createSession({ command, cwd, env, name, owner, ownerOption: ownershipOption, panes, sessionOptions, settings, socket }: CreateSessionOptions): Promise<{ name: string; panes: number; }>; /** Read one namespaced user option for every live session in one tmux call. */ export declare function sessionOptionValuesAsync(option: string, socket?: string): Promise>; /** Set one of tmux's own session options on one session. */ export declare function setSessionSettingAsync(session: string, option: string, value: string, socket?: string): Promise; /** Set one session-scoped user option without exposing it in the session name. */ export declare function setSessionOptionAsync(session: string, option: string, value: string, socket?: string): Promise; export declare function sessionOwner(session: string, socket?: string, ownershipOption?: string): string | undefined; export declare function sessionsOwnedBy(owner: string, socket?: string, ownershipOption?: string): string[]; export declare function killSessionProcessTree({ session, socket }: { session: string; socket?: string; }): void; export declare function listTmuxSessionNames(socket?: string): string[]; export declare function selectOrphanSessions({ allSessions, ownedSessions, prefix }: { allSessions: string[]; ownedSessions: Iterable; prefix: string; }): string[]; export declare function classifyPrefixSessions({ allSessions, ownedSessions, prefix }: { allSessions: string[]; ownedSessions: Iterable; prefix: string; }): { discovered: string[]; kept: string[]; orphans: string[]; tracked: string[]; }; export declare function waitForPanesReady({ expectedPanes, socket, target, timeoutMs }: { target: string; expectedPanes: number; timeoutMs?: number; socket?: string; }): Promise; export declare function inspectPanes(target: string, socket?: string): TmuxPane[]; export declare function inspectPanesAsync(target: string, socket?: string): Promise; declare function parseListPanesOutput(output: string): { active: boolean; currentCommand: string; cwd: string; id: string; pane: number; rootPid: number; session: string; title: string; window: number; }[]; export declare function listPanes(socket?: string): { active: boolean; currentCommand: string; cwd: string; id: string; pane: number; rootPid: number; session: string; title: string; window: number; }[]; export declare function listPanesAsync(socket?: string): Promise>; export declare function clientForTty(tty: string, socket?: string): { height: number; target: string; width: number; } | undefined; export declare function clientForTtyAsync(tty: string, socket?: string): Promise<{ height: number; target: string; width: number; } | undefined>; export declare function clientTtysForSession(session: string, socket?: string): string[]; export declare function getWindowSize({ name, socket, window }: { name: string; window?: number; socket?: string; }): TmuxWindowSize; export declare function getStatusLineCount(name: string, socket?: string): number; export declare function listWindowSizesAsync(socket?: string): Promise>; export declare function setPaneStyle(target: string, style: string, socket?: string): Promise; export declare function clearPaneStyle(target: string, socket?: string): Promise; export declare function capturePane({ lines, preserveEscapes, socket, target }: { target: string; lines?: number; preserveEscapes?: boolean; socket?: string; }): string; export declare function capturePaneAsync({ lines, preserveEscapes, socket, target }: { target: string; lines?: number; preserveEscapes?: boolean; socket?: string; }): Promise; export type TerminalInputDelivery = "keystream" | "submitted-line" | "submitted-paste"; export declare function sendInterruptAsync({ socket, target }: { target: string; socket?: string; }): Promise; export declare function sendInputAsync({ data, deadlineMs, socket, submitMode, target }: { target: string; data: string; deadlineMs?: number; submitMode?: "retry" | "single"; socket?: string; }): Promise; export declare function attachSession({ name, socket, window }: { name: string; socket?: string; window?: number; }): void; export declare function submittedTextFromInput(data: string): string | undefined; export {};