import { SmoothScrollConfig, ScrollProgress, ScrollToOptions } from './SmoothScrollEngine.types';
/**
 * Core smooth scroll engine
 * Manages RAF loop, interpolation, snap detection, and effects
 */
export declare class SmoothScrollEngine {
    private element;
    private config;
    private state;
    private snapDetector;
    private performanceMonitor;
    private orientation;
    private rafId;
    private lastTime;
    private isDestroyed;
    private previousPosition;
    private idleFrames;
    private static readonly IDLE_THRESHOLD;
    private animationStartTime;
    private animationDuration;
    private animationStartPosition;
    private animationTargetPosition;
    private animationEasing;
    private animationOnComplete;
    constructor(element: HTMLElement, config?: Partial<SmoothScrollConfig>, orientation?: 'vertical' | 'horizontal');
    /**
     * Bind wheel and touch events
     */
    private bindEvents;
    /**
     * Unbind events
     */
    private unbindEvents;
    /**
     * Wake the RAF loop if it went idle.
     * Called from input handlers so the engine resumes on new input.
     */
    private wake;
    /**
     * Handle wheel event
     */
    private handleWheel;
    private touchStartY;
    private touchStartX;
    /**
     * Handle touch start
     */
    private handleTouchStart;
    /**
     * Handle touch move
     */
    private handleTouchMove;
    /**
     * Start the RAF loop
     */
    start(): void;
    /**
     * Stop the RAF loop
     */
    stop(): void;
    /**
     * Main RAF tick function
     */
    private tick;
    /**
     * Animate programmatic scrollTo
     */
    private animateProgrammaticScroll;
    /**
     * Animate to snap point using velocity-based smoothing
     */
    private animateSnap;
    /**
     * Interpolate scroll position
     */
    private interpolate;
    /**
     * Check if should snap to nearest point
     */
    private checkForSnap;
    /**
     * Apply visual effects (elastic, rubber-band)
     */
    private applyEffects;
    /**
     * Sync interpolated position to DOM
     */
    private syncToDOM;
    /**
     * Update callbacks with current progress
     */
    private updateCallbacks;
    /**
     * Programmatic scroll to position
     */
    scrollTo(position: number, options?: ScrollToOptions): void;
    /**
     * Scroll to element
     */
    scrollToElement(element: HTMLElement, options?: ScrollToOptions): void;
    /**
     * Get current velocity
     */
    getVelocity(): number;
    /**
     * Get current scroll progress
     */
    getProgress(): ScrollProgress;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<SmoothScrollConfig>): void;
    /**
     * Refresh snap points (call when DOM changes)
     */
    refreshSnapPoints(): void;
    /**
     * Destroy the engine
     */
    destroy(): void;
}
