import { EventBus } from '../core/EventBus';
import type { TutorialDefinition } from './TutorialEngine';
export interface OverlayConfig {
    /** CSS z-index for the overlay layer (default: 10000). */
    zIndex: number;
    /** Spotlight padding around highlighted element in px (default: 8). */
    spotlightPadding: number;
    /** Spotlight border-radius (default: 8). */
    spotlightBorderRadius: number;
    /** Background opacity of the mask (default: 0.65). */
    maskOpacity: number;
    /** Whether to animate transitions (default: true). */
    animate: boolean;
    /** Animation duration in ms (default: 300). */
    animationDuration: number;
    /** Theme: 'light' or 'dark' (default: 'dark'). */
    theme: 'light' | 'dark';
    /** Custom CSS class prefix (default: 'n2d-tutorial'). */
    classPrefix: string;
    /** Whether tooltip closes when clicking outside (default: false). */
    closeOnOutsideClick: boolean;
    /** Whether to show the progress bar (default: true). */
    showProgress: boolean;
    /** Whether to show navigation buttons (default: true). */
    showNavigation: boolean;
    /** Locale for button labels. */
    locale: string;
}
export interface TooltipPosition {
    top: number;
    left: number;
    arrowDirection: 'top' | 'bottom' | 'left' | 'right';
}
export type OverlayAction = 'next' | 'back' | 'skip' | 'close' | 'quiz-answer';
export declare class TutorialOverlay {
    readonly events: EventBus;
    private config;
    private container;
    private styleEl;
    private maskEl;
    private spotlightEl;
    private tooltipEl;
    private active;
    private currentTutorial;
    private currentStepIndex;
    private selectedQuizAnswer;
    private hintVisible;
    constructor(config?: Partial<OverlayConfig>);
    /** Whether the overlay is currently showing. */
    get isActive(): boolean;
    /** Current step index. */
    get stepIndex(): number;
    /** Total steps in current tutorial. */
    get totalSteps(): number;
    /** Show the overlay for a tutorial at a given step. */
    show(tutorial: TutorialDefinition, stepIndex?: number): void;
    /** Hide the overlay and clean up. */
    hide(): void;
    /** Go to a specific step. */
    goToStep(index: number): void;
    /** Advance to next step. */
    next(): void;
    /** Go to previous step. */
    back(): void;
    /** Update the locale for button labels. */
    setLocale(locale: string): void;
    private ensureDOM;
    private removeDOM;
    private renderStep;
    private renderContent;
    private renderQuizOptions;
    private positionTooltip;
    private calculatePosition;
    private bindTooltipEvents;
    private label;
    private escapeHtml;
    /** Dispose the overlay and all DOM elements. */
    dispose(): void;
}
