/** @jsx jsx */
/** @jsxFrag React.Fragment */
import React from 'react';
import { type IconProps } from '@blueprintjs/core';
export interface ListData
= Record> {
items: string[];
selectedItem: string | null;
selectItem: (ref: string | null, extraData?: unknown) => void;
openItem?: (ref: string) => void;
itemHeight: number;
padding: number;
extraData: P;
}
declare type ItemDataGetter = Record> = () => ListData | null;
export interface ItemProps
= Record> {
itemRef: string;
isSelected: boolean;
onSelect?: (extraData?: unknown) => void;
onOpen?: () => void;
padding: number;
extraData: P;
}
export interface ListProps = Record> {
getListData: ItemDataGetter;
className?: string;
}
declare function makeList
= Record>(ItemContents: React.FC>): React.FC>;
interface LabelledListIconProps {
isSelected: boolean;
onSelect?: () => void;
onOpen?: () => void;
contentClassName?: string;
contentStyle?: React.CSSProperties;
entityType?: {
iconProps?: IconProps;
name: string;
};
className?: string;
}
export declare const LabelledListIcon: React.FC;
export default makeList;