/**
 * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
 * Copyright 2025 by Keenthemes Inc
 */
import KTComponent from '../component';
import { KTCarouselConfigInterface, KTCarouselInterface } from './types';
declare global {
    interface Window {
        KTCarousel: typeof KTCarousel;
    }
}
export declare class KTCarousel extends KTComponent implements KTCarouselInterface {
    protected _name: string;
    protected _defaultConfig: KTCarouselConfigInterface;
    protected _config: KTCarouselConfigInterface;
    private _viewport;
    private _slides;
    private _index;
    private _autoplayTimer;
    private _programmaticScroll;
    private _resizeObserver;
    private _prefersReducedMotion;
    private _onPrevClick;
    private _onNextClick;
    private _onScroll;
    private _onScrollEnd;
    private _onKeyDown;
    private _onPointerDown;
    private _onPointerMove;
    private _onPointerUp;
    private _paginationHandlers;
    private _thumbHandlers;
    private _programmaticScrollPrevIndex;
    private _programmaticScrollTargetIndex;
    private _programmaticScrollUserInitiated;
    private _programmaticScrollFallbackTimer;
    private _scrollSyncRaf;
    private _pauseAutoplay;
    private _resumeAutoplay;
    private _dragStartX;
    private _dragStartScroll;
    private _dragging;
    private _dragMoved;
    private _pointerId;
    private _prevButtons;
    private _nextButtons;
    private _currentLabels;
    private _totalLabels;
    constructor(element: HTMLElement, config?: Partial<KTCarouselConfigInterface> | null);
    private _readPrefersReducedMotion;
    private _syncShowScrollbarAttribute;
    private static _resolveViewportStatic;
    private static _collectSlidesStatic;
    private _isRtl;
    private _scrollBehavior;
    private _effectiveDraggable;
    private _bindControls;
    private _bindIndexedClickStrips;
    private _bindScrollSync;
    private _bindKeyboard;
    private _bindAutoplayHoverPause;
    private _bindDraggable;
    private _bindAutoHeight;
    private _observeActiveSlideForHeight;
    private _applyAutoHeight;
    private _nearestIndex;
    private _syncIndexFromScroll;
    private _applyScrollDerivedIndexChange;
    private _setStripItemsActiveState;
    /**
     * Scroll the viewport only. Avoid `Element.scrollIntoView`, which walks
     * ancestor scroll containers and can pull the whole docs page to an embedded
     * carousel (e.g. autoplay ticking on `/docs/carousel`).
     */
    private _scrollToIndex;
    private _clearProgrammaticScrollFallbackTimer;
    private _completeProgrammaticScroll;
    goTo(index: number, userInitiated?: boolean): void;
    next(userInitiated?: boolean): void;
    prev(userInitiated?: boolean): void;
    getIndex(): number;
    getSlideCount(): number;
    private _getChangeEventName;
    private _dispatchChange;
    private _updateInfo;
    private _updatePaginationState;
    private _updateThumbState;
    /**
     * Keep the active thumb visible inside each thumbnail strip by scrolling
     * that container only (no `scrollIntoView`, which can scroll ancestor pages).
     */
    private _scrollActiveThumbnailsIntoView;
    private _alignElementInScrollContainer;
    private _startAutoplay;
    private _stopAutoplay;
    dispose(): void;
    static getInstance(element: HTMLElement): KTCarousel | null;
    static getOrCreateInstance(element: HTMLElement, config?: Partial<KTCarouselConfigInterface>): KTCarousel | null;
    static createInstances(): void;
    static init(): void;
}
//# sourceMappingURL=carousel.d.ts.map