export interface EditorSessionResult {
    ok: boolean;
    content: string | null;
    error?: string;
}
export interface EditorSessionDeps {
    /** Injectable for tests; defaults to a real `spawnSync` with inherited stdio. */
    spawn?: (cmd: string, args: string[]) => {
        status: number | null;
        error?: Error;
    };
    env?: NodeJS.ProcessEnv;
    tmpRoot?: string;
}
/**
 * Open the user's $EDITOR on a temp file seeded with `initialContent`, then return
 * the saved content. Pure of Ink/terminal concerns — the caller is responsible for
 * suspending/restoring the REPL around this call.
 */
export declare function runEditorSession(initialContent: string, deps?: EditorSessionDeps): EditorSessionResult;
