import { ISlottable } from '../../../Behaviors/Slottable';
import { Orientation } from '../../../Types/Orientation';
import { SelectorElement } from '../Abstracts/Selector/SelectorElement';
import { ICarousel2ElementProps } from './ICarousel2ElementProps';
declare const Carousel2Element_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & (abstract new () => SelectorElement<any>) & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Carousel 2 - An interactive slideshow component for cycling through a collection of content items.
 *
 * @description
 * The Carousel 2 component provides a modern slideshow interface for displaying multiple items in a
 * rotating sequence. It supports both horizontal and vertical orientations, automatic playback,
 * navigation controls, and page indicators. The carousel can display multiple items simultaneously
 * and supports circular looping for continuous navigation. It includes features like customizable
 * number of visible items, scroll amounts, and ARIA labels for accessibility.
 *
 * @name Carousel 2
 * @element mosaik-carousel-2
 * @category Selectors
 *
 * @slot - The default slot for carousel items (mosaik-carousel-item-2 elements)
 * @slot header - Optional header content displayed above the carousel
 * @slot footer - Optional footer content displayed below the carousel
 * @slot previous-icon - Custom icon for the previous navigation button
 * @slot next-icon - Custom icon for the next navigation button
 *
 * @csspart content - The main carousel content container
 * @csspart indicators - The page indicator dots container
 *
 * @dependency {CarouselItem2Element} - Individual carousel item component
 *
 * @fires connected {ConnectedEvent} - Fired when the carousel is connected to the DOM
 * @fires changed {PropertyChangedEvent} - Fired when carousel properties change
 *
 * @example
 * Basic carousel with multiple items:
 * ```html
 * <mosaik-carousel-2 num-visible="3" num-scroll="1">
 *   <mosaik-carousel-item-2>Slide 1</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Slide 2</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Slide 3</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Slide 4</mosaik-carousel-item-2>
 * </mosaik-carousel-2>
 * ```
 *
 * @example
 * Vertical carousel with autoplay:
 * ```html
 * <mosaik-carousel-2 orientation="vertical" autoplay-interval="3000" show-indicators show-navigators>
 *   <mosaik-carousel-item-2>Content 1</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Content 2</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Content 3</mosaik-carousel-item-2>
 * </mosaik-carousel-2>
 * ```
 *
 * @example
 * Circular carousel with navigation:
 * ```html
 * <mosaik-carousel-2 circular show-indicators show-navigators>
 *   <mosaik-carousel-item-2>Item A</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Item B</mosaik-carousel-item-2>
 *   <mosaik-carousel-item-2>Item C</mosaik-carousel-item-2>
 * </mosaik-carousel-2>
 * ```
 *
 * @public
 */
export declare class Carousel2Element extends Carousel2Element_base implements ISlottable {
    private _page;
    private _numVisible;
    private _numScroll;
    private _orientation;
    private _circular;
    private _showIndicators;
    private _showNavigators;
    private _autoplayInterval;
    private _totalShiftedItems;
    private readonly _remainingItems;
    private _interval;
    /**
     * @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 `page` property.
     *
     * @public
     * @attr
     */
    get page(): number;
    set page(value: number);
    /**
     * Gets or sets the `numVisible` property.
     *
     * @public
     * @attr
     */
    get numVisible(): number;
    set numVisible(value: number);
    /**
     * Gets or sets the `numScroll` property.
     *
     * @public
     * @attr
     */
    get numScroll(): number;
    set numScroll(value: number);
    /**
     * Gets or sets the `orientation` property.
     *
     * @public
     * @attr
     */
    get orientation(): Orientation;
    set orientation(value: Orientation);
    /**
     * Gets or sets the `circular` property.
     *
     * @public
     * @attr
     */
    get circular(): boolean;
    set circular(value: boolean);
    /**
     * Gets or sets the `showIndicators` property.
     *
     * @public
     * @attr
     */
    get showIndicators(): boolean;
    set showIndicators(value: boolean);
    /**
     * Gets or sets the `showNavigators` property.
     *
     * @public
     * @attr
     */
    get showNavigators(): boolean;
    set showNavigators(value: boolean);
    /**
     * Gets or sets the `autoplayInterval` property.
     *
     * @public
     * @attr
     */
    get autoplayInterval(): number;
    set autoplayInterval(value: number);
    onSlotChanges(slotName?: string): void;
    firstUpdated(): void;
    updated(changedProperties: Map<string | number | symbol, unknown>): void;
    disconnectedCallback(): void;
    isVertical(): boolean;
    private isCircular;
    isForwardNavDisabled(): boolean;
    isBackwardNavDisabled(): boolean;
    ariaPrevButtonLabel(): string;
    ariaNextButtonLabel(): string;
    private ariaSlideLabel;
    private ariaSlideNumber;
    ariaPageLabel(value: number): string;
    navForward(): void;
    navBackward(): void;
    onDotClick(index: number): void;
    onTransitionEnd(): void;
    private startAutoplay;
    private stopAutoplay;
    private step;
    totalDots(): number;
}
/**
 * @public
 */
export declare namespace Carousel2Element {
    type Props = ICarousel2ElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-carousel-2': Carousel2Element;
    }
}
export {};
//# sourceMappingURL=Carousel2Element.d.ts.map