import React from "react";
import { DataTypes, IdDefaultType, LabelDefaultType, ListType } from "@etsoo/shared";
/**
 * Item list properties
 */
export interface ItemListProps<T extends object, D extends DataTypes.Keys<T>, L extends DataTypes.Keys<T, string>> {
    /**
     * Button label
     */
    buttonLabel?: React.ReactNode;
    /**
     * Style class name
     */
    className?: string;
    /**
     * Keep click for all items
     */
    keepClick?: boolean;
    /**
     * Id field name
     */
    idField?: D;
    /**
     * Label field name or callback
     */
    labelField?: L | ((item: T) => string);
    /**
     * Minimum width
     */
    minWidth?: number | string;
    /**
     * Button icon
     */
    icon?: React.ReactNode;
    /**
     * Button color
     */
    color?: "inherit" | "primary" | "secondary";
    /**
     * Close event
     */
    onClose?(item: T | undefined, changed: boolean): void;
    /**
     * Current selected id
     */
    selectedValue?: T[D];
    /**
     * Button size
     */
    size?: "small" | "medium" | "large";
    /**
     * Title
     */
    title?: string;
    /**
     * Items
     */
    items: T[];
    /**
     * Button variant
     */
    variant?: "text" | "outlined" | "contained";
}
/**
 * Item list component
 * @param props Properties
 */
export declare function ItemList<T extends object = ListType, D extends DataTypes.Keys<T> = IdDefaultType<T>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>>(props: ItemListProps<T, D, L>): import("react/jsx-runtime").JSX.Element;
