import { ComponentInterface } from '../../stencil-public-runtime';
/**
 * A container for content that can horizontally or vertically scroll
 *
 * @version 4.0.0
 * @status stable
 *
 * @slot - Default slot to place items.
 *
 * @part base - root, wrapper element
 * @part scroller - the scrolling element
 * @part items - the item wrapper element
 * @part indicator - the animated, indicator element
 * @part scroll-button - The buttons shown at either side of the scrolling area
 * @part scroll-button-prev - The button shown at the start of the scrolling area
 * @part scroll-button-next - The button shown at the end of the scrolling area
 */
export declare class MaskedOverflow implements ComponentInterface {
    /** Used to appropriately label the scrolling element for screen-readers */
    label: string;
    /** Disables the scroll arrow buttons that appear when content overflows */
    scrollControls: boolean;
    /** The flex direction of the element */
    orientation: 'horizontal' | 'vertical';
    /** Shows a track and a highlight line that automatically moves the currently active item. */
    showIndicator: boolean;
    /** Show or hide the browser's default scrollbars. Defaults to `true` on vertical orientation and `false` on `horizontal` orientation */
    hideScrollbars: any;
    watchHideScrollbars(): void;
    /**
     * A function called when an item becomes 'active' (via click or keyboard)
     * @param item - html element currently being assessed
     * @param _index - the index of the html element currently being assessed
     * @returns void */
    activeHandler: (item: HTMLElement, _index: number) => void;
    /**
     * A function called when an item becomes 'inactive'
     * (because another item was made active)
     * @param item - html element currently being assessed
     * @param _index - the index of the html element currently being assessed
     * @returns void */
    inactiveHandler: (item: HTMLElement, _index: number) => void;
    /**
     * A function called to assess an initial, active item
     * @param item - html element currently being assessed
     * @param _index - the index of the html element currently being assessed
     * @returns void */
    isActiveHandler: (item: HTMLElement, _index: number) => boolean;
    watchIsActiveHandler(): void;
    /**
     * Sync up the view to the active item.
     * Use this when the active item changes outside of this component.
     */
    syncActiveItem(): Promise<void>;
    constructor();
    private ro?;
    private nav?;
    private itemContainer?;
    private isRtl?;
    private endBtn;
    private startBtn;
    private activeIndicator;
    private mutationObservers;
    get scrollProp(): "scrollWidth" | "scrollHeight";
    get clientDimensionProp(): "clientWidth" | "clientHeight";
    get scrollOffset(): "scrollLeft" | "scrollTop";
    host: HTMLNanoMaskedOverflowElement;
    instantReCalc: boolean;
    hasScrollControls: boolean;
    watchScrollControls(): void;
    hideControlEnd: boolean;
    hideEndBtn(): void;
    hideControlStart: boolean;
    hideStartBtn(): void;
    private activateBtn;
    get allActiveItems(): HTMLElement[];
    get allItems(): HTMLElement[];
    get activeItem(): HTMLElement;
    set activeItem(item: HTMLElement);
    private _activeItem;
    get navDim(): number;
    private scrollToActiveItem;
    private syncActiveItemIndicator;
    private updateScrollControls;
    private handleScroll;
    private handleBtnClick;
    private slotChangeHandler;
    private handleClick;
    private handleKeyDown;
    private recalculatePositions;
    connectedCallback(): void;
    componentWillLoad(): Promise<void> | void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    render(): any;
}
