import { SelectorElement } from '../Abstracts/Selector/SelectorElement';
import { CarouselItemElement } from './CarouselItemElement';
import type { ICarouselElementProps } from './ICarouselElementProps';
declare const CarouselElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new () => SelectorElement<any>) & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Carousel - A content navigation component that displays items in a horizontally scrolling slideshow format.
 *
 * Enables users to browse through multiple content items (images, cards, media) in a space-efficient
 * carousel layout with navigation controls. Supports automatic cycling, manual navigation, and
 * touch/swipe interactions for engaging content presentation.
 *
 * @name CarouselElement
 * @element mosaik-carousel
 * @category Selectors
 *
 * @slot - Default content area for carousel items and navigation elements
 *
 * @csspart container - Main carousel container for content and controls
 * @csspart track - Scrollable track containing all carousel items
 * @csspart navigation - Navigation controls container (prev/next buttons, indicators)
 * @csspart indicators - Page indicators showing current position
 *
 * @cssprop {String} --carousel-track-gap - Spacing between carousel items
 * @cssprop {String} --carousel-item-width - Width of individual carousel items
 * @cssprop {String} --carousel-transition-duration - Animation duration for item transitions
 * @cssprop {Color} --carousel-navigation-color - Color for navigation controls
 * @cssprop {Color} --carousel-indicator-color - Color for page indicators
 * @cssprop {Color} --carousel-indicator-active-color - Color for active page indicator
 *
 * @keyhandle LeftArrow - Navigates to the previous item in the carousel
 * @keyhandle RightArrow - Navigates to the next item in the carousel
 * @keyhandle Home - Navigates to the first item in the carousel
 * @keyhandle End - Navigates to the last item in the carousel
 *
 * @dependency FloatingActionButtonElement - For navigation controls and action buttons
 * @dependency CarouselItemElement - For individual content items within the carousel
 *
 * @example
 * ```html
 * <!-- Image carousel with navigation -->
 * <mosaik-carousel auto-play="5000" show-indicators="true">
 *   <mosaik-carousel-item>
 *     <img src="slide1.jpg" alt="Product showcase 1" />
 *   </mosaik-carousel-item>
 *   <mosaik-carousel-item>
 *     <img src="slide2.jpg" alt="Product showcase 2" />
 *   </mosaik-carousel-item>
 *   <mosaik-carousel-item>
 *     <img src="slide3.jpg" alt="Product showcase 3" />
 *   </mosaik-carousel-item>
 * </mosaik-carousel>
 *
 * <!-- Card carousel for testimonials -->
 * <mosaik-carousel loop="true" items-per-view="2">
 *   <mosaik-carousel-item>
 *     <mosaik-card>
 *       <mosaik-text slot="header">"Excellent service!"</mosaik-text>
 *       <mosaik-text>- Customer A</mosaik-text>
 *     </mosaik-card>
 *   </mosaik-carousel-item>
 *   <mosaik-carousel-item>
 *     <mosaik-card>
 *       <mosaik-text slot="header">"Highly recommended"</mosaik-text>
 *       <mosaik-text>- Customer B</mosaik-text>
 *     </mosaik-card>
 *   </mosaik-carousel-item>
 * </mosaik-carousel>
 *
 * <!-- Product feature carousel -->
 * <mosaik-carousel show-navigation="true" transition="slide">
 *   <mosaik-carousel-item>
 *     <div class="feature-slide">
 *       <mosaik-icon data="shield-check"></mosaik-icon>
 *       <h3>Secure & Reliable</h3>
 *       <p>Enterprise-grade security for your data</p>
 *     </div>
 *   </mosaik-carousel-item>
 *   <mosaik-carousel-item>
 *     <div class="feature-slide">
 *       <mosaik-icon data="lightning-bolt"></mosaik-icon>
 *       <h3>Lightning Fast</h3>
 *       <p>Optimized performance for speed</p>
 *     </div>
 *   </mosaik-carousel-item>
 * </mosaik-carousel>
 * ```
 *
 * @public
 */
export declare class CarouselElement extends CarouselElement_base implements ICarouselElementProps {
    private _list;
    private _position;
    private _hasPrevious;
    private _hasNext;
    private _loop;
    private _showNavigation;
    private _showIndicator;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @override
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `loop` property.
     *
     * @public
     * @attr
     */
    get loop(): boolean;
    set loop(value: boolean);
    /**
     * Gets or sets the `showNavigation` property.
     *
     * @public
     * @attr
     */
    get showNavigation(): boolean;
    set showNavigation(value: boolean);
    /**
     * Gets or sets the `showIndicator` property.
     *
     * @public
     * @attr
     */
    get showIndicator(): boolean;
    set showIndicator(value: boolean);
    /**
    * Gets or sets the `hasPrevious` property.
    *
    * @public
    */
    get hasPrevious(): boolean;
    private set hasPrevious(value);
    /**
     * Gets or sets the `hasNext` property.
     *
     * @public
     * @attr
     */
    get hasNext(): boolean;
    private set hasNext(value);
    /**
     * Gets the items of the Carousel.
     *
     * @remark
     * It is important to override the base class property to ensure that only
     * {@link CarouselItemElement} instances are returned.
     *
     * @public
     * @readonly
     * @ignore
     */
    get items(): Array<CarouselItemElement>;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * @public
     * @override
     */
    select(item: CarouselItemElement): void;
    /**
     * @public
     * @override
     */
    selectNext(): void;
    /**
     * @public
     * @override
     */
    selectPrevious(): void;
    /**
     * @public
     * @override
     */
    selectFirst(): void;
    /**
     * @public
     * @override
     */
    selectLast(): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     * @override
     */
    protected onItemsChanged(): void;
    /**
     * @private
     */
    private scrollToActiveItem;
    /**
     * Checks whether an item at a specific index is outside of the viewport.
     *
     * @private
     */
    private isOutOfView;
    /**
     * Checks whether an index is out of range.
     *
     * @private
     */
    private isOutOfRange;
}
/**
 * @public
 */
export declare namespace CarouselElement {
    type Props = ICarouselElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-carousel': CarouselElement;
    }
}
export {};
//# sourceMappingURL=CarouselElement.d.ts.map