import { Analytics } from "./analytics";
export interface OnboardingStep {
    name: string;
    index: number;
    required?: boolean;
}
export interface OnboardingConfig {
    steps: OnboardingStep[];
    autoTrack?: boolean;
}
export declare class OnboardingTracker {
    private analytics;
    private config;
    private currentStepIndex;
    private startTime;
    private completedSteps;
    constructor(analytics: Analytics, config: OnboardingConfig);
    /**
     * Start the onboarding process
     */
    start(properties?: Record<string, any>): void;
    /**
     * Complete a step in the onboarding process
     */
    completeStep(stepName: string, properties?: Record<string, any>): void;
    /**
     * Skip a step (optional steps only)
     */
    skipStep(stepName: string, reason?: string): void;
    /**
     * Mark onboarding as complete
     */
    complete(properties?: Record<string, any>): void;
    /**
     * Abandon onboarding
     */
    abandon(reason?: string): void;
    /**
     * Get current progress
     */
    getProgress(): {
        currentStep: string | null;
        currentStepIndex: number;
        completedSteps: string[];
        totalSteps: number;
        progressPercent: number;
        duration: number | null;
    };
    /**
     * Check if a step is completed
     */
    isStepCompleted(stepName: string): boolean;
    /**
     * Get current step name
     */
    private getCurrentStepName;
    /**
     * Reset the tracker
     */
    reset(): void;
}
export declare function useOnboardingTracker(analytics: Analytics | null, config: OnboardingConfig): OnboardingTracker | null;
//# sourceMappingURL=onboarding-tracker.d.ts.map