import * as lit_html from 'lit-html';
import * as lit from 'lit';
import { LitElement } from 'lit';
import KemetCarouselLink from './carousel-link.js';
import KemetCarouselSlide from './carousel-slide.js';
/**
*
* @since 1.1.0
* @status stable
*
* @tagname kemet-carousel
* @summary The Carousel allows you to click or swipe through content.
*
* @prop {number} index - The current slide index.
* @prop {number} total - The total amount of slides.
* @prop {string} sliderWidth - The width of the slider.
* @prop {string} sliderTranslateX - The X position of the slider.
* @prop {boolean} inner - Displays the toolbar inside the carousel container.
* @prop {boolean} arrows - Determines whether to display arrows.
* @prop {object} options - Default options for the carousel.
* @prop {object} breakpoints - Options at different breakpoints for the carousel. Is mobile first.
*
* @event kemet-change-start - Fires when the slide has begun to change.
* @event kemet-change-finished - Fires when a slide has changed and finished animating
*
* @slot slides - Place the slide elements here.
* @slot toolbar - Allows you to construct a toolbar within the carousel. Place things like pagination here.
* @slot prev - A slot for the previous arrow.
* @slot next - A slot for the next arrow.
* @slot information - Allows you to enter custom HTML such as a slide description to be used in the toolbar.
*
* @cssproperty --kemet-carousel-width - The width of the carousel.
* @cssproperty --kemet-carousel-height - The height of the carousel.
* @cssproperty --kemet-carousel-toolbar-gap - The space between items in the toolbar.
* @cssproperty --kemet-carousel-toolbar-justify-content - The cross axis alignment of the toolbar.
* @cssproperty --kemet-carousel-toolbar-padding - The padding of the toolbar.
* @cssproperty --kemet-carousel-toolbar-inner-width - The inner toolbar width.
* @cssproperty --kemet-carousel-toolbar-inner-bottom - The bottom position of the inner toolbar.
* @cssproperty --kemet-carousel-toolbar-inner-top - The top position of the inner toolbar.
* @cssproperty --kemet-carousel-toolbar-inner-color - The inner toolbar text color.
* @cssproperty --kemet-carousel-toolbar-inner-background-color - The inner toolbar background color.
* @cssproperty --kemet-carousel-slides-border - The border around the slides.
* @cssproperty --kemet-carousel-transition-speed - The transition speed of the slides.
* @cssproperty --kemet-carousel-arrows-opacity - The arrows start opacity.
* @cssproperty --kemet-carousel-arrows-opacity-hover - The arrows however opacity.
* @cssproperty --kemet-carousel-arrows-transition-speed - The arrows transition speed.
*
* @csspart container - Contains the slides and toolbar.
* @csspart slides - Wrapper for the slider.
* @csspart slider - Contains the slides.
* @csspart toolbar - Contains the toolbar.
*
*/
declare class KemetCarousel extends LitElement {
static styles: lit.CSSResult[];
index: number;
total: number;
sliderWidth: string;
sliderTranslateX: string;
inner: boolean;
arrows: boolean;
options: object;
breakpoints: object;
/** @internal */
slides: KemetCarouselSlide[];
/** @internal */
links: KemetCarouselLink[];
/** @internal */
toolbarSlotElement: HTMLElement | null;
/** @internal */
informationElement: HTMLElement | null;
/** @internal */
swipeMove: (event: TouchEvent | MouseEvent) => void;
/** @internal */
handleSlideShow: () => void;
/** @internal */
slideShowID: number;
/** @internal */
startX: number;
/** @internal */
slideWidth: number;
/** @internal */
informationSlot: HTMLElement;
/** @internal */
containerElement: HTMLElement;
/** @internal */
slidesElement: HTMLElement;
/** @internal */
sliderElement: HTMLElement;
/** @internal */
toolbarElement: HTMLElement;
constructor();
firstUpdated(): void;
updated(prevProps: Map): void;
render(): lit_html.TemplateResult<1>;
swipeStart(event: TouchEvent | MouseEvent): void;
swipeEnd(event: TouchEvent | MouseEvent): void;
swipeUpdate(event: TouchEvent | MouseEvent): number;
swipeLeave(): void;
setSlideSize(): void;
setToolbarSize(): void;
makeToolbar(): lit_html.TemplateResult<1>;
handleSlotChange(): void;
handleArrows(): void;
handleFirst(): void;
handleLast(): void;
handleNext(): void;
handlePrev(): void;
updateIndex(newIndex: number): void;
updateInformation(): void;
goToSlide(index: number): void;
handleTransitionEnd(): void;
handleLink(event: CustomEvent): void;
getOption(option: string): any;
}
declare global {
interface HTMLElementTagNameMap {
'kemet-carousel': KemetCarousel;
}
}
export { KemetCarousel as default };