/**
 * Backend registry + current-terminal detection.
 */
import type { Backend, EngineContext, TerminalBackend } from '../types.js';
import { itermBackend } from './iterm.js';
import { ghosttyBackend } from './ghostty.js';
import { tmuxBackend } from './tmux.js';
import { vscodiumAgentBackend } from './vscodium-agent.js';
import { terminalAppBackend } from './terminal-app.js';
/**
 * All known interactive backends, keyed by id.
 *
 * Insertion order is the preference order `availableBackends` returns, and
 * `terminal` (Terminal.app) sits LAST deliberately: it is the every-Mac floor, so
 * a caller that falls back to the first available backend still prefers a real
 * terminal the user chose to install.
 */
export declare const BACKENDS: Record<Backend, TerminalBackend>;
/**
 * The backend for the terminal the CLI is currently running in, or null if we
 * can't open a surface into it. tmux wins (via `$TMUX`) because a tmux pane can
 * live inside iTerm/Ghostty; otherwise fall back to `TERM_PROGRAM`.
 */
export declare function detectCurrentBackend(ctx: EngineContext): Backend | null;
/** Backends that can actually be driven in this context. */
export declare function availableBackends(ctx: EngineContext): TerminalBackend[];
export { itermBackend, ghosttyBackend, tmuxBackend, vscodiumAgentBackend, terminalAppBackend };
