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) & typeof SelectorElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Carousel - A user interface component for displaying a rotating or sliding set of content items.
 *
 * @description
 * The Carousel component is designed to showcase a collection of content items in a rotating or sliding manner.
 * It is often used to display images, cards, or other visual content in a dynamic and interactive way.
 * Carousels can automatically cycle through items or allow users to manually navigate between them.
 *
 * @element mosaik-carousel
 * @category Selectors
 *
 * @keyhandle LeftArrow - Selects the previous item in the carousel.
 * @keyhandle RightArrow - Selects the next item in the carousel.
 *
 * @example
 * ```html
 * <mosaik-carousel>
 *   <mosaik-carousel-item>
 *     <!-- Content for the first item -->
 *   </mosaik-carousel-item>
 *   <mosaik-carousel-item>
 *     <!-- Content for the second item -->
 *   </mosaik-carousel-item>
 *   <mosaik-carousel-item>
 *     <!-- Content for the third item -->
 *   </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
     */
    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