/**
 * repl.ts — `olam ask` (no args) opens an interactive multi-turn REPL.
 *
 * Conversation context is preserved by accumulating a running transcript and
 * prepending it to each new prompt. The SDK `query()` call is independent
 * per-turn (no session resume needed for a lightweight Q&A loop); the
 * transcript carries prior Q&A forward so follow-ups land in context.
 *
 * Exits on `/exit`, `/quit`, or Ctrl-D (EOF). Ctrl-C aborts the in-flight
 * answer (or exits at an empty prompt).
 */
import { type Interface as ReadlineInterface } from 'node:readline';
import { type AskQueryFn } from './sdk-client.js';
export interface ReplDeps {
    readonly queryFn?: AskQueryFn;
    readonly checkoutRoot?: string | null;
    /** Injected readline interface (tests). Defaults to stdin/stdout. */
    readonly rl?: ReadlineInterface;
    readonly write?: (s: string) => void;
}
/** Compose the next prompt from prior transcript + the new question. */
export declare function composeTurnPrompt(transcript: string, question: string): string;
/** Append a completed Q&A pair to the transcript (immutable return). */
export declare function appendTurn(transcript: string, question: string, answer: string): string;
/**
 * Run the interactive REPL. Returns the process exit code. Unit-testable via
 * an injected readline interface + query fn (no real stdin / API).
 */
export declare function runRepl(deps?: ReplDeps): Promise<number>;
//# sourceMappingURL=repl.d.ts.map