import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
import { type IInsight } from "@gooddata/sdk-model";
import { type ITab } from "@gooddata/sdk-ui-kit";
/**
 * Tabs ids for insights paged list hook
 * @internal
 */
export interface ITabsIds {
    my: string;
    all: string;
}
/**
 * Config for useInsightPagedList hook
 * @internal
 */
export interface IUsePagedDropdownConfig {
    backend: IAnalyticalBackend;
    workspaceId: string;
    author: string | undefined;
    tabsIds: ITabsIds;
    tags?: string[];
    excludeTags?: string[];
}
/**
 * Result of useInsightPagedList hook
 * @internal
 */
export interface IUsePagedDropdownResult {
    items: IInsight[];
    totalItemsCount: number | undefined;
    isLoading: boolean;
    isNextPageLoading: boolean;
    initialLoadCompleted: boolean;
    currentPage: number;
    search: string;
    selectedTabId: string;
    hasNextPage: boolean;
    skeletonItemsCount: number;
    fetchItems: (params: {
        page: number;
        search: string;
        tabId: string;
        resetItems?: boolean;
    }) => Promise<void>;
    loadNextPage: () => void;
    onSearch: (searchString: string) => void;
    onTabSelect?: (tab: ITab) => void;
    reset: () => void;
    shouldLoadNextPage: (lastItemIndex: number, itemsCount: number) => boolean;
    loadInitialItems: () => void;
    resetItems: () => void;
}
/**
 * Hook to fetch insights paged list
 * @param backend - analytical backend
 * @param workspaceId - workspace id
 * @param author - author
 * @param tabsIds - tabs ids
 * @param tags - fetch only the insights with these tags
 * @param excludeTags - omit insights with these tags during fetch
 * @returns useInsightPagedList result
 *
 * @internal
 */
export declare function useInsightPagedList({ backend, workspaceId, author, tabsIds, tags, excludeTags }: IUsePagedDropdownConfig): IUsePagedDropdownResult;
//# sourceMappingURL=useInsightPagedList.d.ts.map