/// <reference types="react" />
import { type ContentStateProps } from '../../ContentState';
import type { FlattenTree, InfiniteTreeListData, InfiniteTreeListProps } from '../types';
type UseLogicParams<TData extends InfiniteTreeListData<TData>> = InfiniteTreeListProps<TData>;
export declare const useLogic: <TData extends InfiniteTreeListData<TData>>({ initialExpandedLevel, items, onRetry, errorMsg, isError, isLoading, scrollRef, isEndReached, onLoadMore, renderItem, itemSkeleton, endOfScrollMsg, noDataImgSrc, errorImgSrc, }: UseLogicParams<TData>) => {
    flatList: FlattenTree<TData>[];
    onToggle: ({ id: itemId }: InfiniteTreeListData) => void;
    contentStateProps: Omit<ContentStateProps, "children">;
    scrollParent: HTMLElement | null;
    virtuosoProps: {
        id: string;
        ref: import("react").RefObject<import("react-virtuoso").VirtuosoHandle | null>;
        rangeChanged: (range: import("react-virtuoso").ListRange) => void;
        endReached: () => void;
        totalListHeightChanged: () => void;
    };
    footerProps: {
        isError: boolean | undefined;
        isLoading: boolean | undefined;
        isEndReached: boolean | undefined;
    };
    onTopButtonProps: {
        isActive: boolean;
        handleScrollToTop: () => void;
        scrollRef: import("react").RefObject<HTMLElement | null>;
    };
    endOfScrollMsg: string | undefined;
    itemSkeleton: import("react").ReactNode;
    renderItem: (item: TData & {
        meta: import("../types").InfiniteTreeItemMeta;
    }) => import("react").ReactNode;
    items: TData[];
    onLoadMore: (() => void) | undefined;
    onRetry: () => void;
    noDataImgSrc: string | undefined;
    recentlyExpandedIds: import("react").RefObject<Set<string>>;
};
export {};
