/// <reference types="react" />
import * as PropTypes from 'prop-types';
import { BaseComponent } from '../../Utilities';
import { IStickyProps } from './Sticky.types';
import { IScrollablePaneContext } from '../ScrollablePane/ScrollablePane.base';
export interface IStickyState {
    isStickyTop: boolean;
    isStickyBottom: boolean;
}
export interface IStickyContext {
    scrollablePane: PropTypes.Requireable<object>;
}
export declare class Sticky extends BaseComponent<IStickyProps, IStickyState> {
    static defaultProps: IStickyProps;
    static contextTypes: IStickyContext;
    context: IScrollablePaneContext;
    distanceFromTop: number;
    private _root;
    private _stickyContentTop;
    private _stickyContentBottom;
    private _nonStickyContent;
    constructor(props: IStickyProps);
    readonly root: HTMLDivElement | null;
    readonly stickyContentTop: HTMLDivElement | null;
    readonly stickyContentBottom: HTMLDivElement | null;
    readonly nonStickyContent: HTMLDivElement | null;
    readonly canStickyTop: boolean;
    readonly canStickyBottom: boolean;
    syncScroll: (container: HTMLElement) => void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: IStickyProps, prevState: IStickyState): void;
    shouldComponentUpdate(nextProps: IStickyProps, nextState: IStickyState): boolean;
    render(): JSX.Element;
    addSticky(stickyContent: HTMLDivElement): void;
    resetSticky(): void;
    setDistanceFromTop(container: HTMLDivElement): void;
    private _getContentStyles(isSticky);
    private _getStickyPlaceholderHeight(isSticky);
    private _getNonStickyPlaceholderHeight();
    private _onScrollEvent;
    private _getStickyDistanceFromTop;
    private _getStickyDistanceFromTopForFooter;
    private _getNonStickyDistanceFromTop;
    private _getBackground();
}
