import type { AssistantResponseStatsMode, LogDisplayMode, TerminalPartDisplayMode, TuiDisplayOptions } from "#cli/dev/tui/types.js";
interface CliLogger {
    error(message: string): void;
    log(message: string): void;
}
interface DevelopmentCliOptions {
    assistantResponseStats?: AssistantResponseStatsMode;
    connectionAuth?: TerminalPartDisplayMode;
    contextSize?: number;
    host?: string;
    logs?: LogDisplayMode;
    name?: string;
    port?: number;
    reasoning?: TerminalPartDisplayMode;
    repl?: boolean;
    subagents?: TerminalPartDisplayMode;
    tools?: TerminalPartDisplayMode;
    ui?: boolean;
    url?: string;
}
interface DevelopmentServerHandle {
    readonly url: string;
    close(): Promise<void>;
}
interface ProductionServerHandle {
    readonly url: string;
    close(): Promise<void>;
    wait(): Promise<void>;
}
interface CliRuntimeDependencies {
    buildHost(appRoot: string): Promise<string>;
    printApplicationInfo(logger: CliLogger, appRoot: string, options?: {
        json?: boolean;
    }): Promise<void>;
    runDevelopmentRepl(input: {
        serverUrl: string;
    }): Promise<void>;
    runDevelopmentTui(input: {
        serverUrl: string;
    } & TuiDisplayOptions): Promise<void>;
    runEvalCommand(evalIds: readonly string[], options: EvalCliOptions, logger: CliLogger): Promise<void>;
    startHost(appRoot: string, options?: {
        host?: string;
        port?: number;
    }): Promise<DevelopmentServerHandle>;
    startProductionHost(appRoot: string, options?: {
        host?: string;
        port?: number;
    }): Promise<ProductionServerHandle>;
}
type CliRuntimeOverrides = Partial<CliRuntimeDependencies>;
interface EvalCliOptions {
    case?: string[];
    json?: boolean;
    junit?: string;
    list?: boolean;
    maxConcurrency?: string;
    mockModels?: boolean;
    noSkips?: boolean;
    skipReport?: boolean;
    strict?: boolean;
    tag?: string[];
    timeout?: string;
    url?: string;
    verbose?: boolean;
}
/**
 * The interactive UI `eve dev` runs against a server.
 *
 * - `tui` — the default terminal UI.
 * - `repl` — the classic line-based REPL (`--repl`).
 * - `headless` — no UI: just keep the server running (`--no-ui`, or a
 *   non-interactive terminal).
 *
 * Exported for unit coverage of the flag-routing contract.
 */
export type DevUiMode = "tui" | "repl" | "headless";
/**
 * Resolves which UI `eve dev` should run from the parsed flags and whether
 * the terminal is interactive. `--no-ui` and non-TTY terminals force
 * `headless`; `--repl` selects the classic REPL; otherwise the terminal UI
 * is the default.
 */
export declare function resolveDevUiMode(input: {
    options: Pick<DevelopmentCliOptions, "repl" | "ui">;
    interactive: boolean;
}): DevUiMode;
/**
 * Resolves the terminal UI's header title: an explicit `--name`, else the
 * remote server's host (for `--url`), else the humanized app-folder name
 * (e.g. `apps/fixtures/weather-fixture` → "Weather Fixture"). Returns `undefined` when
 * nothing meaningful can be derived, so the runner falls back to its own
 * default.
 */
export declare function resolveTuiTitle(input: {
    name: string | undefined;
    remoteServerUrl: string | undefined;
    appRoot: string;
}): string | undefined;
/**
 * Builds the terminal-UI display options for `eve dev`. Tools default to
 * `auto-collapsed` and reasoning to `full` — the combination the example
 * apps' former `tui` scripts shipped — while the other dimensions fall
 * back to the runner's own defaults when unset.
 */
export declare function resolveTuiDisplayOptions(options: DevelopmentCliOptions): TuiDisplayOptions;
/**
 * Rewrites the deprecated `eve dev --no-repl` flag to its replacement
 * `--no-ui`. The TUI is now the default UI, so "no REPL" no longer
 * describes "no interactive UI"; `--no-repl` is kept as a silent alias so
 * existing scripts and programmatic spawns (e.g. `withEve`) keep working.
 */
export declare function rewriteDeprecatedReplFlag(argv: readonly string[]): string[];
/**
 * Runs the Eve CLI entrypoint.
 */
export declare function runCli(argv?: string[], logger?: CliLogger, runtime?: CliRuntimeOverrides): Promise<void>;
export {};
