import { BaseLocalizedComponent } from '@italia/globals'; import { type Options } from '@splidejs/splide'; import { type CarouselVariants, type CarouselType } from './types.js'; /** * @csspart arrows - Wrapper element containing the prev/next arrow buttons. * @csspart arrow-prev - The "previous" arrow button. * @csspart arrow-next - The "next" arrow button. * @csspart pagination-track - The pagination list element (dots). When autoplay is enabled it lives inside the controls wrapper; otherwise Splide appends it to the carousel root. * @csspart pagination-dot - Each individual pagination dot button. * @csspart autoplay-toggle - The play/pause toggle button (rendered when `autoplay` prop is true or `config.autoplay` is set). * @csspart autoplay-play - The play SVG icon inside the toggle button. * @csspart autoplay-pause - The pause SVG icon inside the toggle button. */ export declare class ItCarousel extends BaseLocalizedComponent { static styles: import("lit").CSSResultGroup; config?: Options; variant: CarouselVariants; fullscreen?: boolean; arrows: boolean; separator: boolean; /** * Splide movement type. Overrides the variant's default type. * - `slide` (default for most variants) — linear slide * - `loop` — infinite loop * - `fade` — crossfade */ type?: CarouselType; /** * If true, enables Splide autoplay in `'pause'` mode: the carousel * auto-advances but starts paused so the user must explicitly press Play. * A play/pause toggle button is rendered automatically. * To customise the interval or other autoplay options use `config.autoplay`. */ autoplay: boolean; titleElements: HTMLElement[]; mainSlot: HTMLSlotElement; wrapper: HTMLElement; list: HTMLElement; private _isInitialized; private _splide?; pauseAutoplay(): void; playAutoplay(): void; private _handleSlotChange; private _initSplide; /** * Adds `inert` to every slide that Splide has not marked as visible, * and removes it from the ones that are. Called after mount and on every * `moved` event so the tab order always reflects what is on screen. * Clone slides (loop mode) are always inert per splide docs. */ private _updateInert; /** * After Splide mounts it injects elements (arrows, pagination) directly into * the shadow DOM. We annotate each one with a CSS `part` so that consumers * can reach them from outside the shadow root with `::part()`. * * Exposed parts: * - `arrows` – the arrows wrapper element * - `arrow-prev` – the "previous" button * - `arrow-next` – the "next" button * - `pagination-track` – the pagination `