import type React from 'react';
export interface PullToRefreshOptions {
    /** Distance in px to pull before triggering refresh (default: 60) */
    threshold?: number;
    /** Maximum pull distance in px (default: 120) */
    maxPull?: number;
}
export interface PullToRefreshResult {
    /** Current pull distance in px */
    pullDistance: number;
    /** Whether the user is actively pulling */
    isPulling: boolean;
    /** Whether a refresh was triggered and is in progress */
    isRefreshing: boolean;
    /** Props to spread on the scrollable container */
    containerProps: {
        onTouchStart: (e: React.TouchEvent) => void;
        onTouchMove: (e: React.TouchEvent) => void;
        onTouchEnd: () => void;
        style: React.CSSProperties;
    };
    /** Call this when the refresh operation completes */
    endRefresh: () => void;
}
export declare function usePullToRefresh(onRefresh: () => void, options?: PullToRefreshOptions): PullToRefreshResult;
