/**
 * Onboarding Flow Implementation
 *
 * Guides new users through initial setup and configuration
 * Implementation of the OnboardingFlow interface.
 */
import { OnboardingFlow, SetupResult, TestResult, UserPreferences, OnboardingState } from '../interfaces/OnboardingFlow.js';
/**
 * OnboardingFlowImpl guides new users through initial setup and configuration
 *
 * This implementation detects first-run scenarios, creates working default configurations,
 * tests all major functionality, and provides interactive demonstrations.
 */
export declare class OnboardingFlowImpl implements OnboardingFlow {
    private onboardingState;
    private configPath;
    private connectionManager;
    private textInputHandler;
    constructor(configPath?: string);
    /**
     * Run the complete initial setup process for new users
     */
    runInitialSetup(): Promise<SetupResult>;
    /**
     * Detect if this is a first-run scenario
     */
    detectFirstRun(): boolean;
    /**
     * Configure working default settings for immediate productivity
     */
    configureDefaults(): Promise<void>;
    /**
     * Test connectivity and functionality of all major components
     */
    testConnectivity(): Promise<TestResult[]>;
    /**
     * Show welcome demonstration of key features
     */
    showWelcomeDemo(): Promise<void>;
    /**
     * Get the current onboarding state
     */
    getOnboardingState(): OnboardingState;
    /**
     * Update user preferences during onboarding
     */
    updateUserPreferences(preferences: Partial<UserPreferences>): Promise<void>;
    /**
     * Skip the current onboarding step
     */
    skipCurrentStep(reason?: string): Promise<void>;
    /**
     * Complete the onboarding process
     */
    completeOnboarding(): Promise<void>;
    /**
     * Reset onboarding state (for testing or re-running)
     */
    resetOnboarding(): Promise<void>;
    /**
     * Gather user preferences interactively
     */
    private gatherUserPreferences;
    /**
     * Save the current onboarding state to disk
     */
    private saveOnboardingState;
    /**
     * Load onboarding state from disk
     */
    private loadOnboardingState;
}
