import { type ReactElement } from "react";
import { type IAccessibilityConfigBase } from "../typings/accessibility.js";
export declare const MAX_VISIBLE_ITEMS_COUNT = 10;
export declare const DEFAULT_ITEM_HEIGHT = 28;
/**
 * @internal
 */
export interface IListProps<T> {
    id?: string;
    className?: string;
    compensateBorder?: boolean;
    height?: number;
    width?: number;
    maxHeight?: number;
    items?: T[];
    itemsCount?: number;
    itemHeight?: number;
    maxVisibleItemsCount?: number;
    itemHeightGetter?: (index: number) => number;
    renderItem: (props: IRenderListItemProps<T>) => ReactElement;
    itemTitleGetter?: (item: T) => string;
    scrollToItem?: T;
    scrollDirection?: -1 | 1;
    onScrollStart?: ScrollCallback;
    onScrollEnd?: ScrollCallback;
    accessibilityConfig?: Pick<IAccessibilityConfigBase, "ariaLabelledBy" | "role">;
}
/**
 * @internal
 */
export interface IRenderListItemProps<T> {
    rowIndex: number;
    item: T;
    width: number;
    height: number;
    isFirst: boolean;
    isLast: boolean;
    focused?: boolean;
}
/**
 * @internal
 */
export type ScrollCallback = (visibleRowsStartIndex: number, visibleRowsEndIndex: number) => void;
/**
 * @internal
 */
export declare function List<T>({ id, className, width, height, maxHeight, items, itemsCount, itemHeight, itemHeightGetter, maxVisibleItemsCount, renderItem, onScrollStart, onScrollEnd, scrollToItem, scrollDirection, accessibilityConfig }: IListProps<T>): ReactElement;
//# sourceMappingURL=List.d.ts.map