import { Component, SFCElement } from 'react'; export interface IViewportObserverSensorProps { children?: ((size: IViewportObserverSensorState) => React.ReactElement) | React.ReactElement; render?: (size: IViewportObserverSensorState) => React.ReactElement; margin?: [number, number, number, number]; threshold?: number; onChange?: (state: IViewportObserverSensorState) => void; } export interface IViewportObserverSensorState { visible: boolean; } export declare class ViewportObserverSensor extends Component { static defaultProps: { threshold: number; margin: number[]; }; mounted: boolean; el: HTMLElement; observer: IntersectionObserver; state: { visible: boolean; }; ref: (originalRef: any) => (el: any) => void; componentDidMount(): void; componentWillUnmount(): void; onObserve: (entries: IntersectionObserverEntry[]) => void; render(): SFCElement<{ ref: (el: any) => void; }>; }