import React from 'react'; import type { ChangeHandler } from '@researchgate/react-intersection-observer/typings/types'; interface ProgressiveImagenState { currentIntents: number; isOnline: boolean; loading: boolean; loaded: boolean; src: string; } interface ChildrenProps { loading: boolean; loaded: boolean; isOnline: boolean; src: string; retry(): void; } interface ProgressiveImagenProps { /** * @description * Delay time in milliseconds to load initially resources (src) */ delay?: number; /** * @description * Max number of intents to load src */ maxIntents?: number; /** * @description * Time in milliseconds to await before reload src */ retryInterval: number; /** * @description * Target URL that will be managed the load like a thumbnail */ src: string; /** * @description * The lightest resource's url */ placeholder: string; /** * @description * The heaviest resource's url */ fallback?: string; noRetry?: boolean; noLazyLoad?: boolean; children: (props: ChildrenProps) => React.ReactElement; } /** * @example * ```typescript * * {({ src, retry }) => ( * retry()} * alt="Image Name" * width={100} * height={100} /> * )} * * ``` */ export default class ProgressiveImagen extends React.Component { _isMounted: boolean; image: HTMLImageElement | null; delaytimeout: any; retrytimeout: any; constructor(props: ProgressiveImagenProps); componentDidMount(): void; componentWillUnmount(): void; clearTimers: () => void; clearImage: () => void; loadImage: (src: string) => void; handleReload: (src: string) => void; handleOnlineStatus: () => void; handleIntersection: ChangeHandler; retry: () => void; render(): React.ReactNode; } export {};