import { ESLCarouselPlugin } from '../esl-carousel.plugin';
export interface ESLCarouselAutoplayConfig {
    /** Duration of the autoplay timer in milliseconds. Default: 5000 */
    duration: string | number;
    /** Navigation command to send to the host carousel. Default: 'slide:next' */
    command: string;
    /** Whether to track user interaction (focus/hover) with the carousel to pause/resume autoplay */
    trackInteraction: boolean;
    /** Selector for control to toggle plugin state */
    control?: string;
    /** Class to toggle on control element, when autoplay is active */
    controlCls?: string;
    /** Class to toggle on container element, when autoplay is active */
    containerCls?: string;
}
/**
 * {@link ESLCarousel} autoplay (auto-advance) plugin mixin
 * Automatically switch slides by timeout
 *
 * @author Alexey Stsefanovich (ala'n)
 */
export declare class ESLCarouselAutoplayMixin extends ESLCarouselPlugin<ESLCarouselAutoplayConfig> {
    static is: string;
    static DEFAULT_CONFIG: ESLCarouselAutoplayConfig;
    static DEFAULT_CONFIG_KEY: keyof ESLCarouselAutoplayConfig;
    private _enabled;
    private _duration;
    /** True if the autoplay timer is currently active */
    get active(): boolean;
    /** True if the autoplay plugin is enabled */
    get enabled(): boolean;
    protected set enabled(value: boolean);
    /** The duration of the autoplay timer in milliseconds */
    get duration(): number;
    /** A list of control elements to toggle plugin state */
    get $controls(): HTMLElement[];
    protected onInit(): void;
    protected disconnectedCallback(): void;
    protected onConfigChange(): void;
    /** Activates and restarts the autoplay carousel timer */
    start(): void;
    /**
     * Deactivates the autoplay carousel timer.
     * @param system - If true, the plugin will be suspended but not disabled.
     */
    stop(system?: boolean): void;
    /**
     * Starts a new autoplay cycle.
     * Produces cycle self call after a timeout with enabled command execution.
     */
    protected _onCycle(exec?: boolean): Promise<void>;
    /** Handles click on control element to toggle plugin state */
    protected _onToggle(e: Event): void;
    /** Handles auxiliary events that represent user interaction to pause/resume timer */
    protected _onInteract(e: Event): void;
    /** Handles carousel slide change event to restart the timer */
    protected _onSlideChange(): void;
}
declare global {
    export interface ESLCarouselNS {
        Autoplay: typeof ESLCarouselAutoplayMixin;
    }
}
