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 {};