import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
/**
 * A toolbox for 'sticking' items to scrolling containers.
 *
 * @version 1.0.0
 * @status deprecated
 *
 * @slot - default slot. Use this to place content inside the sticker.
 */
export declare class Sticker implements ComponentInterface {
    private isRtl;
    private io;
    private contentSizeObserver;
    private parentSizeObserver;
    private sticker;
    private content;
    private scrollPosCache;
    private scrollPosThresholdCache;
    private cacheOffset;
    private slottedContent;
    private pauseResizeWatcher;
    private listenForScrollParent;
    private stickToEleInitSize?;
    private positions;
    private pauseHide;
    private hasBootstrapped;
    host: HTMLNanoStickerElement;
    isStuck: boolean;
    isRootSticker: boolean;
    hide: boolean;
    scrollHide: boolean;
    multiStickerHide: boolean;
    scrollingTo: boolean;
    quietModeIsOn: boolean;
    stuckCounter: number;
    stickerIndex: number;
    stickToEle?: HTMLNanoStickerElement;
    triggerPos: {
        top: number;
        left: number;
    };
    trigger: HTMLDivElement;
    _offset: number | {
        v: number;
        h: number;
    };
    /** Only applicable to root stickers. When applied the sticker will grow or shrink to the scrollParent size */
    autoResize: boolean;
    /** Manually enable / disabled sticky behaviour */
    isSticky: boolean;
    /** Distance the item should be stuck from the sticky edge. */
    offset: number | {
        v: number;
        h: number;
    };
    /** The edge of the scroll-parent to stick to */
    position: 'top' | 'bottom';
    /** When applied, the sticker will hide when the scroll-parent
     * is scrolling away from the sticker's stuck position and show when scrolling toward it.
     * By default this will apply when the parent is below either the h or w dimensions */
    quietMode: 'on' | 'off' | {
        h: number;
        w: number;
    };
    /** When applied stickers will hide upon new stickers being stuck to the same position */
    hideOnNewStickers: boolean;
    /** The max width of the item to implement sticky behaviour. */
    breakPointMax: null | number;
    /** The min width of the item to implement sticky behaviour. */
    breakPointMin: null | number;
    /** Define which scroll element to listen & stick to.
     * By default, it will find traverse the DOM to find the closest. */
    scrollParent?: HTMLElement | Document;
    /** Upon being stuck, attach the sticker to another sticker element.
     * JS query selector string or DOM element pointing to a `<nano-sticker>`  */
    stickTo: string | HTMLNanoStickerElement;
    /** Emitted when a sticker is stuck */
    nanoStuck: EventEmitter<{
        sticker: HTMLNanoStickerElement;
    }>;
    /** Emitted when a sticker is unstuck */
    nanoUnstuck: EventEmitter<{
        sticker: HTMLNanoStickerElement;
    }>;
    /** Emitted when a sticker is hidden */
    nanoHide: EventEmitter<{
        sticker: HTMLNanoStickerElement;
    }>;
    /** Emitted when a sticker is showing */
    nanoShow: EventEmitter<{
        sticker: HTMLNanoStickerElement;
    }>;
    /**
     * Method to return the visibility status of the sticker
     * @returns boolean
     */
    isHiding(): Promise<boolean>;
    /**
     * Method to return the stuck status of the sticker
     * @returns boolean
     */
    isSticking(): Promise<boolean>;
    /**
     * @internal
     * @param offset
     * @returns the trigger position
     */
    setTriggerPos(offset: number | {
        v: number;
        h: number;
    }): Promise<number | {
        v: number;
        h: number;
    }>;
    /**
     * @internal
     * @returns the trigger position
     */
    getTriggerPos(): Promise<{
        top: number;
        left: number;
    }>;
    /**
     * @internal
     * @param pause
     */
    pauseHiding(pause: boolean): Promise<void>;
    /** Keep a note of trigger position. Need this to track sticker order in the DOM */
    updateTriggerOffset(): void;
    /** A root sticker is a fixed element Or this sticker is sticking to another.
     * We need a content resize watcher to make sure we maintain a correct placeholder size in the body */
    stickerResizeListener(): void;
    quietModeChange(): void;
    /** offset is part of the public API but we also use it to manipulate trigger points */
    setOffset(): void;
    positionChange(): void;
    /** If this sticker is attached to a 'master' sticker (stickToEle),
     * here we move the content of this sticker in and out accordingly */
    stuckChange(): Promise<void>;
    /** attach scroll listener. 'hides' stickers when scrolling away from trigger and 'shows' when scrolling toward */
    attachScrollListeners(): void;
    /** Add / remove parent scrolling listeners. If there's stickToEle we need to remove them */
    handleParentEvents(_: any, oldParent?: null | HTMLElement): void;
    /** Add remove specific listeners if we're sticking to a sticker.
     * We need to adjust triggers according to the status of the 'master'  */
    stickToEleChange(_: any, oldEle: null | HTMLNanoStickerElement): void;
    /** Find and set the stickToEle from the public, selector string */
    stickToChange(): void;
    /** 2 potential criteria for hiding. Multi-stickers or quiet mode. */
    visibilityDecisionHandler(): void;
    handleHideChange(): void;
    setupIO(): void;
    /** Assesses the public API quitemode and works out if it should be applied atm.
     * If 'small screen', or there is a breakpointmax / min it will add a resizeobserver to conditionally add behaviour */
    private setupParentResizeListener;
    /** For stickTo stickers. We listen to the events from the 'master' sticker to amend the hide/show trigger
     * Main diffs from root-stickers / non is height being on 'master' */
    private onStickToDisplayEvent;
    /** Add or removes event listeners / observers on scrolling parent
     * for when the scrolling parent changes, or, this sticker is sticking to another */
    private manageListenersOnParent;
    /** Handler applied to scrolling parent. When 'hideOnNewStickers' is true, hide this sticker on subsequent stuck stickers.  */
    private onStickEvent;
    /** Scroll handler applied to scrolling parent. Only applied when quietmode is on.
     * 'hides' stickers when scrolling over 100px away from trigger and 'shows' when scrolling toward */
    private onScroll;
    /** Watch for scroll direction. Only applies when quietmode is on.
     * We need to addjust the position of the trigger when the sticker is hidden */
    private handleScrollTo;
    private handleScrollAway;
    private moveTrigger;
    private shouldStick;
    private bootstrapGurantor;
    connectedCallback(): void;
    disconnectedCallback(): void;
    render(): any;
}
