/// <reference types="react" />
import * as React from 'react';
import * as PropTypes from 'prop-types';
import { BaseComponent } from '../../Utilities';
import { IScrollablePane, IScrollablePaneProps } from './ScrollablePane.types';
import { Sticky } from '../../Sticky';
export interface IScrollablePaneContext {
    scrollablePane: PropTypes.Requireable<object>;
}
export declare class ScrollablePaneBase extends BaseComponent<IScrollablePaneProps, {}> implements IScrollablePane {
    static childContextTypes: React.ValidationMap<IScrollablePaneContext>;
    root: HTMLElement;
    stickyContainer: HTMLElement;
    stickyAbove: HTMLElement;
    stickyBelow: HTMLElement;
    private _subscribers;
    private _stickyAbove;
    private _stickyBelow;
    constructor(props: IScrollablePaneProps);
    getChildContext(): {
        scrollablePane: {
            subscribe: (handler: (headerBound: ClientRect, footerBound: ClientRect) => void) => void;
            unsubscribe: (handler: (headerBound: ClientRect, footerBound: ClientRect) => void) => void;
            addStickyHeader: (sticky: Sticky) => void;
            removeStickyHeader: (sticky: Sticky) => void;
            addStickyFooter: (sticky: Sticky) => void;
            removeStickyFooter: (sticky: Sticky) => void;
            notifySubscribers: (sort?: boolean | undefined) => void;
        };
    };
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
    forceLayoutUpdate(): void;
    subscribe(handler: (headerBound: ClientRect, footerBound: ClientRect) => void): void;
    unsubscribe(handler: (headerBound: ClientRect, footerBound: ClientRect) => void): void;
    addStickyHeader(sticky: Sticky): void;
    addStickyFooter(sticky: Sticky): void;
    removeStickyHeader(sticky: Sticky): void;
    removeStickyFooter(sticky: Sticky): void;
    notifySubscribers(sort?: boolean): void;
    private _addSticky(sticky, stickyList, container, addStickyToContainer);
    private _removeSticky(sticky, stickyList, container);
    private _onWindowResize();
    private _resizeContainer();
    private _setPlaceholderHeights(stickies);
    private _sortStickies(stickyList, container);
    private _calculateOffsetParent(ele);
}
