import { EventEmitter } from "../../stencil-public-runtime";
export interface SelectedMedia {
    index: number;
    el: HTMLXShowcaseItemElement;
    target: HTMLImageElement | HTMLIFrameElement;
}
export declare class XShowcase {
    /**
     * Element active scroll timeout
     */
    private activeScroll;
    /**
     * Element items container
     */
    private container;
    /**
     * Dragging start value for vertical swipe
     */
    private touchStart;
    /**
     * Stored time instance
     */
    private touchTime;
    /**
     * Total time that the swipe took
     */
    private touchTotalTime;
    /**
     * Element is upload media
     */
    upload: boolean;
    /**
     * Element is active left arrow
     */
    isLeftArrowActive: boolean;
    /**
     * Element is active right arrow
     */
    isRightArrowActive: boolean;
    /**
     * Element active media index
     */
    activeMediaIndex: number;
    /**
     * Element is busy scroll
     */
    busyScroll: boolean;
    /**
     * Element media elements list
     */
    mediaElements: Array<HTMLXShowcaseItemElement>;
    /**
     * Element upload media event
     */
    uploadMedia: EventEmitter;
    /**
     * Element select media event
     */
    selectMedia: EventEmitter<SelectedMedia>;
    /**
     * Element reference
     */
    el: HTMLElement;
    /**
     * Element event on slot make changes
     *
     * @param evt
     */
    handleSlotChange(): void;
    /**
     * On component will load action
     */
    componentWillLoad(): void;
    /**
     * This is called on component did load
     */
    componentDidLoad(): void;
    /**
     * Register all the child elements
     */
    searchMediaElements(): void;
    /**
     * Event on container scroll with buttons
     */
    onContainerScroll(): void;
    /**
     * On scroll left button event
     */
    onScrollLeft(): void;
    /**
     * On scroll right button event
     */
    onScrollRight(): void;
    /**
     * On select item event
     */
    onSelectMedia(event: MouseEvent, index: number): void;
    /**
     * On swipe start
     */
    onTouchStart(e: TouchEvent): void;
    /**
     * On swipe end
     */
    onTouchEnd(e: TouchEvent): void;
    /**
     * Handle scroll position to item
     */
    scrollItemTo(positionFactor: any): void;
    selectMediaElement(index: number): void;
    /**
     * Get the Youtube video media thumb
     */
    getMediaThumb(media: HTMLXShowcaseItemElement): string;
    /**
     * Obtain the Youtube ID reference from URL
     */
    getYoutubeId(url: string): string | false;
    /**
     * Return the item element container
     */
    getMainElementRender(): any;
    /**
     * Render component
     */
    render(): any;
}
