import { ReactNode } from 'react';

type OnboardingStepSide = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
interface OnboardingStepConfig {
    id: string;
    title: string;
    content: ReactNode;
    selector?: string;
    side?: OnboardingStepSide;
    onShow?: () => void;
    onHide?: () => void;
    action?: {
        label: string;
        onClick: () => void;
    };
    showDelay?: number;
    canClickTarget?: boolean;
    className?: string;
}
interface OnboardingTourConfig {
    id: string;
    name: string;
    description?: string;
    steps: OnboardingStepConfig[];
    routes?: string[];
}
interface OnboardingTourPaths {
    [routePattern: string]: string;
}
interface OnboardingLabels {
    next: string;
    previous: string;
    finish: string;
    skip: string;
    close: string;
    stepCounter: (current: number, total: number) => string;
}
declare const DEFAULT_ONBOARDING_LABELS: OnboardingLabels;
interface OnboardingContextValue {
    startTour: (tourId: string, steps?: OnboardingStepConfig[]) => void;
    closeTour: () => void;
    nextStep: () => void;
    previousStep: () => void;
    goToStep: (index: number) => void;
    isTourActive: boolean;
    activeTourId: string | null;
    currentStepIndex: number;
    totalSteps: number;
}
interface OnboardingProviderProps {
    children: React.ReactNode;
    tours?: OnboardingTourConfig[];
    tourPaths?: OnboardingTourPaths;
    labels?: OnboardingLabels;
    renderCard?: (props: OnboardingCardRenderProps) => ReactNode;
    zIndex?: number;
}
interface OnboardingCardRenderProps {
    step: OnboardingStepConfig;
    currentIndex: number;
    totalSteps: number;
    labels: OnboardingLabels;
    onNext: () => void;
    onPrevious: () => void;
    onClose: () => void;
    onSkip: () => void;
    isFirst: boolean;
    isLast: boolean;
}

export { DEFAULT_ONBOARDING_LABELS as D, type OnboardingProviderProps as O, type OnboardingContextValue as a, type OnboardingStepSide as b, type OnboardingStepConfig as c, type OnboardingTourConfig as d, type OnboardingTourPaths as e, type OnboardingLabels as f, type OnboardingCardRenderProps as g };
