import React from "react";
import propTypes from 'prop-types';
import { IOScrollContext, ScrollSenseProps, ScrollSenseState } from "./types";
import { Tracker } from "../types";
declare const ScrollContextIntersectionObserver: React.Context<IOScrollContext>;
declare class ScrollSense extends React.Component<ScrollSenseProps, ScrollSenseState> {
    callbackfns: {};
    io: any;
    perComponentIOArray: any[];
    static propTypes: {
        config: propTypes.Requireable<propTypes.InferProps<{
            threshold: propTypes.Requireable<string | number>;
            root: propTypes.Requireable<HTMLElement>;
            rootMargin: propTypes.Requireable<string | any[]>;
        }>>;
    };
    onContentVisible(entries: any, observer: any): void;
    onViewportChange(): void;
    componentWillUnmount(): void;
    i: number;
    replaceComponentFn(el: any, fn: any, config: any): any;
    buildOptions(el: any, config: any): any;
    wrappedPerComponentHandler(ioEvent: IntersectionObserverEntry[], io: IntersectionObserver): void;
    addPerComponentFn(el: any, fn: any, config: any): any;
    addTrackingFn(el: any, fn: any): Tracker;
    replaceTrackingFn(el: any, fn: any): void;
    pauseTrackingFn(el: any, io: any): void;
    resumeTrackingFn(el: any, io: any): void;
    removeTrackingFn(el: any, isMultiple: any): void;
    constructor(props: any);
    render(): JSX.Element;
}
export { ScrollContextIntersectionObserver };
export default ScrollSense;
