/**
 * olam yolo — First-class CLI primitive for tmux-yolo dispatch.
 *
 * Provisions a git worktree + tmux window + injects a yolo
 * (claude --dangerously-skip-permissions) with the given prompt file.
 *
 * Modes:
 *   olam yolo <name> --branch <feat/branch-name> --prompt-file <path>   → Spawn
 *   olam yolo --list                                                     → List active yolo windows
 *   olam yolo --cleanup <name> [--force]                                 → Remove worktree + kill window + delete branch
 *
 * Lessons baked in from /tmux-yolo skill usage:
 *   - Tmux binary varies: /opt/homebrew/Cellar/tmux/3.6a/bin/tmux on this host.
 *   - Session id is "0" by default.
 *   - Worktree root: env OLAM_TMUX_YOLO_ROOT > ~/.olam-tmux-yolo-root file > default sibling dir.
 *   - Yolo boot time is ~8s before prompt can be injected safely.
 *
 * @see docs/runbooks/olam-yolo-cli.md
 */
import type { Command } from 'commander';
/** Milliseconds to wait for yolo to boot before injecting the prompt. */
export declare const YOLO_BOOT_DELAY_MS = 8000;
export type RunnerResult = {
    status: number | null;
    stdout: string;
    stderr: string;
};
/** Injectable runner: wraps spawnSync so tests can mock it. */
export type Runner = (cmd: string, args: string[], opts?: {
    cwd?: string;
}) => RunnerResult;
/** Injectable sleep so tests run fast. */
export type Sleeper = (ms: number) => Promise<void>;
/**
 * Detect a usable tmux binary.
 * Probes known paths first, then falls back to `which tmux`.
 * Skips any path that contains a shell-plugin shim marker.
 */
export declare function detectTmuxBinary(runner?: Runner): string | null;
/**
 * Resolve the worktree root directory in order:
 *   1. OLAM_TMUX_YOLO_ROOT env var
 *   2. Single-line path in ~/.olam-tmux-yolo-root
 *   3. Default: <dirname(repoRoot)>/<basename(repoRoot)>-wt
 *
 * repoRoot is the git top-level of the current working directory.
 */
export declare function resolveWorktreeRoot(runner?: Runner, cwd?: string): string;
/**
 * Resolve the yolo command to inject into tmux.
 * Prefers `yolo` alias if it's on PATH and not a shim.
 * Falls back to ~/.local/bin/claude --dangerously-skip-permissions.
 */
export declare function resolveYoloCommand(runner?: Runner): {
    cmd: string;
    usingFallback: boolean;
};
export interface SpawnOptions {
    name: string;
    branch: string;
    base?: string;
    promptFile: string;
    runner?: Runner;
    sleeper?: Sleeper;
    cwd?: string;
}
export interface SpawnResult {
    worktreePath: string;
    branch: string;
    windowName: string;
    attachHint: string;
    captureWarning?: string;
    yoloFallbackUsed: boolean;
}
export declare function spawnYolo(opts: SpawnOptions): Promise<SpawnResult>;
export interface ListOptions {
    runner?: Runner;
    cwd?: string;
}
export interface YoloWindow {
    name: string;
    worktreePath?: string;
}
export declare function listYoloWindows(opts?: ListOptions): YoloWindow[];
export interface CleanupOptions {
    name: string;
    force?: boolean;
    runner?: Runner;
    cwd?: string;
    /** Base branch used for merged check. Defaults to 'main'. */
    mainBranch?: string;
}
export declare function cleanupYolo(opts: CleanupOptions): Promise<void>;
export declare function registerYolo(program: Command): void;
//# sourceMappingURL=yolo.d.ts.map