import * as React from 'react';

interface QueryLike<T> {
    data: T | undefined;
    isPending: boolean;
    isError: boolean;
    refetch: () => void;
    isFetching?: boolean;
    isStale?: boolean;
    isPaused?: boolean;
    error?: unknown;
    dataUpdatedAt?: number;
}
interface QueryBoundaryProps<T> {
    query: QueryLike<T>;
    skeleton: React.ReactNode;
    children: (data: T) => React.ReactNode;
    errorFallback?: (retry: () => void, error: unknown) => React.ReactNode;
    staleErrorFallback?: (retry: () => void, error: unknown) => React.ReactNode;
    showRefreshing?: boolean;
}
declare function QueryBoundary<T>({ query, skeleton, children, errorFallback, staleErrorFallback, showRefreshing, }: QueryBoundaryProps<T>): React.JSX.Element;

export { QueryBoundary, type QueryBoundaryProps, type QueryLike };
