import type { RunDevelopmentTuiInput } from "#cli/dev/tui/tui.js";
import type { DevelopmentServerHandle, DevelopmentServerOptions, ProductionServerHandle } from "#internal/nitro/host/types.js";
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;
    input?: string;
    logs?: LogDisplayMode;
    name?: string;
    port?: number;
    reasoning?: TerminalPartDisplayMode;
    subagents?: TerminalPartDisplayMode;
    tools?: TerminalPartDisplayMode;
    ui?: boolean;
    url?: string;
}
interface CliRuntimeDependencies {
    isCodingAgentLaunch(): Promise<boolean>;
    buildHost(appRoot: string): Promise<string>;
    printApplicationInfo(logger: CliLogger, appRoot: string, options?: {
        json?: boolean;
    }): Promise<void>;
    runDevelopmentTui(input: RunDevelopmentTuiInput): Promise<void>;
    runEvalCommand(evalIds: readonly string[], options: EvalCliOptions, logger: CliLogger): Promise<void>;
    startHost(appRoot: string, options?: DevelopmentServerOptions): Promise<DevelopmentServerHandle>;
    startProductionHost(appRoot: string, options?: {
        host?: string;
        port?: number;
    }): Promise<ProductionServerHandle>;
}
type CliRuntimeOverrides = Partial<CliRuntimeDependencies>;
interface EvalCliOptions {
    json?: boolean;
    junit?: string;
    list?: boolean;
    maxConcurrency?: string;
    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.
 * - `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" | "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`; otherwise the terminal UI runs.
 */
export declare function resolveDevUiMode(input: {
    options: Pick<DevelopmentCliOptions, "ui">;
    interactive: boolean;
}): DevUiMode;
/**
 * Builds the terminal-UI display options for `eve dev`. Tools default to
 * `auto-collapsed`, reasoning to `full`, and stderr logs are visible so
 * long-running local sandbox work can report progress.
 */
export declare function resolveTuiDisplayOptions(options: DevelopmentCliOptions): TuiDisplayOptions;
/**
 * Runs the eve CLI entrypoint.
 */
export declare function runCli(argv?: string[], logger?: CliLogger, runtime?: CliRuntimeOverrides): Promise<void>;
export {};
