import { type ProviderId } from "./eval-server/providers.js";
export type OnboardingAction = "skip" | "saved" | "declined";
export interface OnboardingResult {
    action: OnboardingAction;
    provider?: ProviderId;
}
export interface OnboardingIO {
    stdout: {
        write: (s: string) => boolean;
    };
    stderr: {
        write: (s: string) => boolean;
    };
    isTTY: () => boolean;
    promptConfirm: (question: string) => Promise<boolean>;
    readMaskedKey: () => Promise<string>;
    env: NodeJS.ProcessEnv;
    /** 0772 US-001: detect whether the `claude` CLI binary is on PATH. When
     *  true, the prompt is skipped silently because Claude Code provides a
     *  no-key path. Defaults to a real `which`/`where` call when omitted. */
    detectClaudeBinary?: () => boolean;
}
/**
 * 0772 US-001 — Detect whether the `claude` CLI binary is on PATH.
 * POSIX uses `which claude`; win32 uses `where claude`. Bounded 250 ms timeout.
 * Never throws — any failure is reported as "not detected".
 */
export declare function detectClaudeBinaryDefault(): boolean;
export declare function firstRunOnboarding(io?: OnboardingIO): Promise<OnboardingResult>;
