/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { type LoadedSettings } from '../../config/settings.js';
export type WelcomeStep = 'welcome' | 'provider' | 'model' | 'auth_method' | 'authenticating' | 'completion' | 'skipped';
export type ModelsLoadStatus = 'idle' | 'loading' | 'success' | 'error';
export interface WelcomeState {
    step: WelcomeStep;
    selectedProvider?: string;
    selectedModel?: string;
    selectedAuthMethod?: 'oauth' | 'api_key';
    authInProgress: boolean;
    modelsLoadStatus: ModelsLoadStatus;
    error?: string;
}
export interface WelcomeActions {
    startSetup: () => void;
    selectProvider: (providerId: string) => void;
    selectModel: (modelId: string) => void;
    selectAuthMethod: (method: 'oauth' | 'api_key') => void;
    onAuthComplete: () => void;
    onAuthError: (error: string) => void;
    skipSetup: () => void;
    goBack: () => void;
    saveProfile: (name: string) => Promise<void>;
    dismiss: () => void;
    /** Re-trigger the welcome onboarding flow (for /setup command) */
    resetAndReopen: () => void;
}
export interface UseWelcomeOnboardingOptions {
    settings: LoadedSettings;
    isFolderTrustComplete: boolean;
}
export interface ModelInfo {
    id: string;
    name: string;
}
export interface UseWelcomeOnboardingReturn {
    showWelcome: boolean;
    state: WelcomeState;
    actions: WelcomeActions;
    availableProviders: string[];
    availableModels: ModelInfo[];
    triggerAuth: (provider: string, method: 'oauth' | 'api_key', apiKey?: string) => Promise<void>;
}
export declare const useWelcomeOnboarding: (options: UseWelcomeOnboardingOptions) => UseWelcomeOnboardingReturn;
