import type { Config, ProviderTierType } from "./config.js"; export interface OnboardingStatus { provider: string; displayName: string; tierType: ProviderTierType; authEnv: string; hasKey: boolean; signupUrl?: string | undefined; recommendedModels: string[]; } /** * The providers onboarding should nudge about. * * ⚠ This is the ONLY surface `leave_me_alone` affects. Do not reuse it in `llm-relay keys`, * `/registry`, telemetry or the candidates table: the user asked for silence about a provider * they are not configuring, not for it to disappear from the places they go to find out what * the relay actually sees. */ export declare function getOnboardingStatusList(cfg?: Config): OnboardingStatus[]; export declare function printOnboardingGuide(cfg?: Config): void; /** Interactively prompt for missing API keys and save them to ~/.llm-relay/.env */ export declare function runInteractiveOnboarding(cfg?: Config, opts?: { envPath?: string; }): Promise; /** * Persist wizard-collected keys, owner-only. * * The .env holds every provider key, yet it was born with default (world-readable) mode while * the far less sensitive control token got 0600/0700 — adoption review §1.12. Create restricted * and re-restrict on every save so a pre-existing wide file converges. On Windows the shared * secret-file hardener removes inherited ACEs and explicitly grants the current user full access; * its failure is best-effort and never turns key persistence into an availability failure. */ export declare function saveKeysToEnv(envPath: string, addedKeys: Record): void;