import type { GroupItem } from '../grouped-list/utils'; import type { Column, Item } from './types'; import { indexSymbol } from './utils'; export interface IndexedItem extends Item { [indexSymbol]: number; } export interface IndexedGroup extends GroupItem { [indexSymbol]: number; } export interface RenderItemParams { selected: boolean; expanded: boolean; toggleCollapse: () => void; } export interface RenderGroupParams { selected: boolean; folded: boolean; toggleFold: () => void; } interface UseListHost extends HTMLElement { loading?: boolean; displayEmptyGroups?: boolean; compareItemsFn?: (a: T, b: T) => boolean; } interface UseListParams { host: UseListHost; error?: { message: string; } | null; dataIsValid: boolean; processedItems: (Item | GroupItem)[]; columns: Column[]; collapsedColumns: Column[]; miniColumns: Column[]; sortAndGroupOptions: { groupOnColumn?: Column; [key: string]: unknown; }; rowPartFn?: (item: Item, index: number) => string | undefined; [key: string]: unknown; } export declare const useList: ({ host, error, dataIsValid, processedItems, columns, collapsedColumns, miniColumns, sortAndGroupOptions, rowPartFn, ...rest }: UseListParams) => { processedItems: (object | GroupItem)[]; dataIsValid: boolean; filterIsTooStrict: boolean; loading: boolean; compareItemsFn: ((a: T, b: T) => boolean) | undefined; displayEmptyGroups: boolean; error: { message: string; } | null | undefined; renderItem: (item: IndexedItem, index: number, { selected, expanded, toggleCollapse }: RenderItemParams) => import("lit-html").TemplateResult<1>; renderGroup: (item: IndexedGroup, index: number, { selected, folded, toggleFold }: RenderGroupParams) => import("lit-html").TemplateResult<1>; }; export {}; //# sourceMappingURL=use-list.d.ts.map