import { type ReasoningLevel } from "#setup/boxes/model-capabilities.js";
import { type SelectState } from "#setup/cli/select-state.js";
import type { ModelSettingsRequest, ModelSettingsResult } from "#setup/flows/model.js";
import type { Theme } from "./theme.js";
type ModelPickerStep = "model" | "speed" | "reasoning";
interface ModelPickerDraft {
    model: string | null;
    speed: "standard" | "priority";
    reasoning: "default" | ReasoningLevel;
}
interface ModelPickerPage {
    step: ModelPickerStep;
    select: SelectState;
    draft: ModelPickerDraft;
}
export interface ModelPickerState extends ModelPickerPage {
    history: readonly Pick<ModelPickerPage, "step" | "select">[];
}
export type ModelPickerEvent = {
    type: "up";
} | {
    type: "down";
} | {
    type: "back";
} | {
    type: "cancel";
} | {
    type: "submit";
} | {
    type: "backspace";
} | {
    type: "delete-word-backward";
} | {
    type: "char";
    char: string;
};
export type ModelPickerTransition = {
    kind: "render";
    state: ModelPickerState;
} | {
    kind: "cancel";
} | {
    kind: "settle";
    result: ModelSettingsResult;
};
export declare function initialModelPickerState(request: ModelSettingsRequest): ModelPickerState;
export declare function transitionModelPicker(state: ModelPickerState, event: ModelPickerEvent, request: ModelSettingsRequest): ModelPickerTransition;
export declare function modelPickerTitle(state: ModelPickerState): string;
export declare function renderModelPicker(request: ModelSettingsRequest, state: ModelPickerState, theme: Theme, width: number): string[];
export {};
