import { Component, TemplateFunction } from "@ribajs/core";
import { EventDispatcher } from "@ribajs/events";
import { Bs5Service } from "../../services/index.js";
import { Bs5SliderComponentScope, JsxBs5SliderProps, Bs5SliderSlide } from "../../types/index.js";
import { Dragscroll, Autoscroll, ScrollPosition, ScrollEventsService, ScrollEventDetail } from "@ribajs/extras";
export declare class Bs5SliderComponent extends Component {
    protected resizeObserver?: ResizeObserver;
    protected bs5: Bs5Service;
    protected get sliderInner(): HTMLElement | null;
    protected get slideElements(): HTMLElement[];
    protected get controlsElements(): NodeListOf<Element>;
    protected get indicatorsElement(): Element | null;
    static EVENTS: {
        scrolling: string;
        scrollended: string;
    };
    static get observedAttributes(): (keyof JsxBs5SliderProps)[];
    protected defaultScope: Bs5SliderComponentScope;
    static tagName: string;
    protected autobind: boolean;
    protected dragscrollService?: Dragscroll;
    protected continuousAutoplayService?: Autoscroll;
    protected scrollEventsService?: ScrollEventsService;
    protected autoplayIntervalIndex: number | null;
    protected continuousAutoplayIntervalIndex: number | null;
    protected resumeTimer: number | null;
    protected routerEvents: EventDispatcher;
    scope: Bs5SliderComponentScope;
    constructor();
    next(): void;
    prev(): void;
    protected goTo(index: number, fromRight?: boolean): number;
    protected getNextIndex(currentActive: number): number;
    protected getPrevIndex(currentActive: number): number;
    protected scrollToNextSlide(): number;
    protected scrollToPrevSlide(): number;
    protected initOptions(): void;
    protected setOptions(): void;
    protected updateColumns(): void;
    protected setControlsOptions(): void;
    protected setIndicatorsOptions(): void;
    protected _onViewChanges(): void;
    protected onViewChanges: (...params: any[]) => Promise<any>;
    protected onVisibilityChanged(event: CustomEvent): void;
    protected onScroll(event: CustomEvent<ScrollEventDetail>): void;
    protected onScrollEnd(event: CustomEvent<ScrollEventDetail>): void;
    protected connectedCallback(): void;
    protected addEventListeners(): void;
    protected removeEventListeners(): void;
    protected initAll(): void;
    protected beforeBind(): Promise<void>;
    protected afterBind(): Promise<void>;
    protected afterAllBind(): Promise<void>;
    protected initSlideshowInner(): void;
    protected enableDesktopDragscroll(): void;
    protected disableDesktopDragscroll(): void;
    enableTouchScroll(): void;
    disableTouchScroll(): void;
    protected validateItems(): void;
    updateItems(): boolean;
    protected removeItem(index: number, updateIndex?: boolean): void;
    protected updateItemIndexes(): void;
    protected addItemByElement(slideElement: HTMLElement, index: number): void;
    protected initItemsByChildren(): void;
    protected getScrollPosition(): ScrollPosition | null;
    protected getCurrentClosestNumber(goal: number, curr: number, prev: number): number;
    protected setAllSlidesInactive(excludeIndex?: number): void;
    protected setSlideActive(index: number): 0 | undefined;
    protected setSlidesActive(slides: number[]): void;
    protected isScrollable(): boolean;
    protected getSlideElementByIndex(index: number): HTMLElement | undefined;
    protected isSlideVisible(item: Bs5SliderSlide, offset: number): boolean;
    protected getVisibleSlides(offset: number): number[];
    protected setVisibleSlidesActive(offset: number): number[];
    updateActiveSlides(offset?: number): {
        firstIndex: number;
        lastIndex: number;
        activeSlides: number[];
        prevIndex: number;
        nextIndex: number;
    };
    protected updateSlides(offset?: number, isRetry?: boolean): number[];
    protected updateControls(): void;
    protected updateIndicators(): void;
    protected requiredAttributes(): string[];
    protected parsedAttributeChangedCallback(attributeName: keyof Bs5SliderComponentScope, oldValue: any, newValue: any, namespace: string | null): void;
    protected disconnectedCallback(): void;
    protected beforeTemplate(): Promise<void>;
    protected template(): ReturnType<TemplateFunction>;
}
