import { ExtendedHTMLElement } from '../../helper/dom'; import { ChatItemButton, DetailedList, DetailedListItem } from '../../static'; export interface DetailedListWrapperProps { detailedList: DetailedList; descriptionTextDirection?: 'ltr' | 'rtl'; onFilterValueChange?: (filterValues: Record, isValid: boolean) => void; onGroupActionClick?: (action: ChatItemButton, groupName?: string) => void; onGroupClick?: (groupName: string) => void; onItemSelect?: (detailedListItem: DetailedListItem) => void; onItemClick?: (detailedListItem: DetailedListItem) => void; onItemActionClick?: (action: ChatItemButton, detailedListItem?: DetailedListItem) => void; onFilterActionClick?: (action: ChatItemButton, filterValues?: Record, isValid?: boolean) => void; } export declare class DetailedListWrapper { render: ExtendedHTMLElement; private readonly detailedListItemGroupsContainer; private filterForm; private readonly filtersContainer; private readonly filterActionsContainer; private readonly headerContainer; private readonly props; private detailedListItemsBlockData; private activeTargetElementIndex; private allSelectableDetailedListElements; constructor(props: DetailedListWrapperProps); /** * Handles scroll events to implement virtualization for the detailed list: * * 1. Initially creating empty placeholder blocks with appropriate height for each chunk of list items * 2. On scroll, determining which blocks are visible in the viewport (or near it) * 3. Dynamically rendering content only for visible blocks by: * - Adding DOM elements for blocks entering the viewport * - Removing DOM elements for blocks that are no longer visible * */ private readonly handleScroll; private readonly getHeader; private readonly getFilters; private readonly getFilterActions; private readonly getDetailedListItemGroups; private readonly getDetailedListItemElements; readonly changeTarget: (direction: 'up' | 'down', snapOnLastAndFirst?: boolean, scrollIntoView?: boolean) => void; private readonly setFocus; private readonly setFocusByIndex; readonly getTargetElement: () => DetailedListItem | null; readonly update: (detailedList: DetailedList, preserveScrollPosition?: boolean, preserveFocus?: boolean) => void; }