import { Component } from 'react';
import { ItemProps } from './Item';
import { Id, TimelineGroupBase, TimelineItemBase, TimelineKeys } from '../types/main';
import { ItemDimension } from '../types/dimension';
export type CanResize = true | false | 'left' | 'right' | 'both';
type ItemsProps<CustomItem extends TimelineItemBase<number>> = {
    groups: TimelineGroupBase[];
    items: CustomItem[];
    dimensionItems: ItemDimension[];
    selected?: Id[];
    canvasTimeStart: number;
    canvasTimeEnd: number;
    canvasWidth: number;
    dragSnap?: number;
    minResizeWidth?: number;
    selectedItem?: Id;
    canChangeGroup?: boolean;
    canMove?: boolean;
    canResize?: CanResize;
    canSelect?: boolean;
    keys: TimelineKeys;
    moveResizeValidator?: ItemProps<CustomItem>['moveResizeValidator'];
    itemSelect: ItemProps<CustomItem>['onSelect'];
    itemDrag: ItemProps<CustomItem>['onDrag'];
    itemDrop: ItemProps<CustomItem>['onDrop'];
    itemResizing: ItemProps<CustomItem>['onResizing'];
    itemResized: ItemProps<CustomItem>['onResized'];
    onItemDoubleClick: ItemProps<CustomItem>['onItemDoubleClick'];
    onItemContextMenu?: ItemProps<CustomItem>['onContextMenu'];
    itemRenderer?: ItemProps<CustomItem>['itemRenderer'];
    groupTops: number[];
    useResizeHandle?: boolean;
    scrollRef: HTMLElement | null;
};
type ItemsState = object;
export default class Items<CustomItem extends TimelineItemBase<number>> extends Component<ItemsProps<CustomItem>, ItemsState> {
    shouldComponentUpdate(nextProps: ItemsProps<CustomItem>): boolean;
    isSelected(item: CustomItem, itemIdKey: string): boolean;
    getVisibleItems(canvasTimeStart: number, canvasTimeEnd: number): CustomItem[];
    render(): import("react/jsx-runtime").JSX.Element;
}
export {};
