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;
}