///
import React, { Component } from 'react';
export declare type STAT = '' | 'pulling' | 'pulling enough' | 'refreshing' | 'refreshed' | 'reset' | 'loading';
declare type ScrollTopObj = {
value: number;
smooth: boolean;
};
export declare type ScrollTop = number | ScrollTopObj;
export interface PullLoadProps {
className: string;
refreshEnable: boolean;
loadEnable: boolean;
footer: React.ReactNode | React.FunctionComponent;
hasMore: boolean;
header: React.ReactNode | React.FunctionComponent;
block: boolean;
lowerThreshold: number;
offsetScrollTop: number;
upperThreshold: number;
scrollTop?: ScrollTop;
stat: STAT;
onAction: (stat: STAT) => void;
onScroll?: (e: Window | Event, top: number) => void;
}
interface PullLoadState {
pullHeight: number;
}
declare class PullLoad extends Component {
static defaultProps: {
block: boolean;
footer: JSX.Element;
hasMore: boolean;
header: JSX.Element;
lowerThreshold: number;
offsetScrollTop: number;
upperThreshold: number;
};
constructor(props: PullLoadProps);
componentDidMount(): void;
UNSAFE_componentWillReceiveProps(nextProps: PullLoadProps): void;
componentDidUpdate(prevProps: PullLoadProps): void;
componentWillUnmount(): void;
$container: React.RefObject;
$parentContainer: HTMLDivElement | HTMLElement | null;
$footer: React.RefObject;
startX: number;
startY: number;
convertScrollTop: (scrollTop: ScrollTop) => {
value: number;
smooth: boolean;
};
scrollTo: (scrollTop: ScrollTopObj) => void;
getScrollTop: () => number;
canRefresh: () => boolean;
onPullDownMove: (data: {
touchStartY: number;
touchEndY: number;
}) => false | undefined;
onPullDownRefresh: () => false | undefined;
onPullUpMove: () => false | undefined;
onTouchStart: (event: TouchEvent) => void;
onTouchMove: (event: TouchEvent) => void;
onTouchEnd: (event: TouchEvent) => void;
onScroll: import("lodash").DebouncedFunc<(e: Window | Event) => void>;
render(): JSX.Element;
}
export default PullLoad;