import type { ESLCarousel } from '../../core/esl-carousel';
import type { ESLCarouselAutoplayReason, ESLCarouselAutoplayState } from './esl-carousel.autoplay.types';
interface ESLCarouselAutoplayEventInit {
    /** Whether autoplay plugin is enabled or disabled */
    enabled: boolean;
    /** Whether autoplay is currently paused */
    paused: boolean;
    /** Whether autoplay is currently blocked by runtime conditions */
    blocked: boolean;
    /** Whether autoplay cycle is currently active */
    active: boolean;
    /** Exclusive autoplay runtime state */
    state: ESLCarouselAutoplayState;
    /** Full duration of the current autoplay cycle in milliseconds */
    duration: number;
    /** Remaining duration of the current autoplay cycle in milliseconds */
    remaining: number;
    /** Compact machine-readable description of the latest autoplay state change */
    reason?: ESLCarouselAutoplayReason;
}
/**
 * ESLCarouselAutoplayEvent (esl:autoplay:change) event is dispatched by {@link ESLCarouselAutoplayMixin}
 * on the host {@link ESLCarousel} element when autoplay state changes.
 * It indicates whether autoplay is enabled or disabled, or notifies about the current autoplay cycle start.
 */
export declare class ESLCarouselAutoplayEvent extends Event implements ESLCarouselAutoplayEventInit {
    static readonly NAME = "esl:autoplay:change";
    readonly type: typeof ESLCarouselAutoplayEvent.NAME;
    target: ESLCarousel;
    readonly enabled: boolean;
    readonly paused: boolean;
    readonly blocked: boolean;
    readonly active: boolean;
    readonly state: ESLCarouselAutoplayState;
    readonly duration: number;
    readonly remaining: number;
    readonly reason?: ESLCarouselAutoplayReason;
    constructor(init: ESLCarouselAutoplayEventInit);
    toFingerprint(): string;
}
export {};
