import React from "react";
import type { ModelProvider } from "../../core/types.js";
import type { OllamaHost } from "../hosts.js";
import { type OnboardingPreferences } from "../onboardingPreferences.js";
export type ApiKeyProvider = "gemini" | "gemini-wrapper" | "openrouter" | "nvidia";
export type OnboardingState = {
    step: "welcome";
} | {
    step: "disclaimer";
} | {
    step: "entry";
} | {
    step: "host";
    hosts: OllamaHost[];
} | {
    step: "host-input";
} | {
    step: "api-key-choice";
    provider: ApiKeyProvider;
    hasExistingKey: boolean;
} | {
    step: "gemini-key";
} | {
    step: "gemini-wrapper-url";
} | {
    step: "gemini-wrapper-psid";
} | {
    step: "gemini-wrapper-psidts";
    secure1psid: string;
} | {
    step: "gemini-wrapper-model-mode";
} | {
    step: "gemini-wrapper-key";
    baseUrl: string;
} | {
    step: "openrouter-key";
} | {
    step: "nvidia-key";
} | {
    step: "codex-login";
} | {
    step: "model";
    provider: ModelProvider;
    models: string[];
    deviceName?: string;
} | {
    step: "preferences";
    provider: ModelProvider;
    model: string;
    preferences: OnboardingPreferences;
};
export declare function OnboardingPanel(props: {
    state: OnboardingState;
    height: number;
    selectedIndex: number;
    input: string;
    busyMessage?: string | null;
    notice?: {
        tone: "warning" | "danger" | "success";
        text: string;
        detail?: string;
    } | null;
    formatModelLabel?: (model: string) => string;
    formatModelDescription?: (model: string) => string;
    onInputChange: (value: string) => void;
    onInputSubmit: (value: string) => void;
}): React.ReactElement;
