import { TabItem, LoadDataParams } from '../types';
export interface ListState {
    activeTab: string;
    currentPage: number;
    isStickyActive: boolean;
}
export declare type ListAction = {
    type: 'SET_ACTIVE_TAB';
    payload: string[] | string;
} | {
    type: 'SET_CURRENT_PAGE';
    payload: number;
} | {
    type: 'SET_STICKY_ACTIVE';
    payload: boolean;
} | {
    type: 'RESET_PAGE';
};
export interface UseListStateProps {
    /** 外部传入的当前页码 */
    externalCurrentPage?: number;
    /** tab数据 */
    tabItems: TabItem[];
    /** 默认页面大小 */
    defaultPageSize: number;
    /** 数据加载回调 */
    onLoadData?: (params: LoadDataParams) => void;
    /** tab样式 */
    tabStyle: 'anchor' | 'switch' | 'none';
    isTreeTab: boolean;
}
export interface UseListStateReturn {
    state: ListState;
    setActiveTab: (tab: string) => void;
    setCurrentPage: (page: number) => void;
    setStickyActive: (active: boolean) => void;
    resetPage: () => void;
    handleTabChange: (key: string[] | string) => void;
    handlePageChange: (page: number, size?: number) => void;
    handleShowSizeChange: (current: number, size: number) => void;
    handleLoadMore: () => void;
    handleViewLess: () => void;
    handleScrollLoad: () => void;
    actualCurrentPage: number;
}
export declare const useListState: ({ externalCurrentPage, tabItems, defaultPageSize, onLoadData, tabStyle, isTreeTab, }: UseListStateProps) => UseListStateReturn;
