import BoxSlider from '@boxslider/slider/BoxSlider';
import type { BoxSliderOptions, Effect, SliderEventData } from '@boxslider/slider';
declare global {
    interface ElementEventMap {
        after: CustomEvent<SliderEventData>;
        before: CustomEvent<SliderEventData>;
        destroy: CustomEvent<void>;
        pause: CustomEvent<SliderEventData>;
        play: CustomEvent<SliderEventData>;
    }
}
export declare function camelize(str: string): string;
export declare function getNumericAttribute(el: HTMLElement, attribute: string, defaultValue: number): number;
export declare function getBbooleanAttribute(el: HTMLElement, attribute: string, defaultValue: boolean): boolean;
export declare const SLIDER_ATTRIBUTES: string[];
export interface SliderElement extends HTMLElement {
    readonly slider?: BoxSlider;
    autoScroll: boolean;
    pauseOnHover: boolean;
    speed: number;
    swipe: boolean;
    swipeTolerance: number;
    startIndex: number;
    timeout: number;
}
export default abstract class Slider extends HTMLElement implements SliderElement {
    #private;
    get slider(): BoxSlider | undefined;
    get autoScroll(): boolean;
    get pauseOnHover(): boolean;
    get speed(): number;
    get startIndex(): number;
    get swipe(): boolean;
    get swipeTolerance(): number;
    get timeout(): number;
    get options(): BoxSliderOptions;
    protected init(effect: Effect): void;
    protected reset(options: Partial<BoxSliderOptions>, effect?: Effect): void;
    attributeChangedCallback(name: string): void;
    disconnectedCallback(): void;
}
