import { default as React, ElementType } from 'react';
import { Colors, DeepPartial, RoundedSizes } from '../../types';
import { ChipTheme } from './theme';
declare const BASE_COMPONENT = "li";
type BaseComponentType = typeof BASE_COMPONENT;
export interface ChipAction extends React.HTMLAttributes<HTMLButtonElement> {
    element?: React.ReactNode;
    icon?: React.ReactNode;
    label: string;
}
export interface ChipProps<T extends ElementType = BaseComponentType> {
    as?: T;
    children?: React.ReactNode;
    label?: React.ReactNode | string;
    onClick?: (e: React.MouseEvent) => void;
    color?: Colors;
    disabled?: boolean;
    rounded?: RoundedSizes;
    actions?: ChipAction[];
    theme?: DeepPartial<ChipTheme>;
    className?: string;
    elementClassName?: string;
    textClassName?: string;
    onDelete?: (e: React.MouseEvent) => void;
}
/**
 *  Chip component
 * @description The chip component is used to display information in a compact way and can be used to trigger actions when clicked or to display actions when hovered over. It can be used to display tags, categories, actions...
 *  @param {ElementType} props.as - The component to render
 * @param {React.ReactNode} props.children - The content of the chip
 * @param {string} props.label - The label of the chip
 * @param {(e: React.MouseEvent) => void} props.onClick - The function to call when the chip is clicked
 * @param {Colors} props.color - The color of the chip
 * @param {boolean} props.disabled - If the chip is disabled
 * @param {RoundedSizes} props.rounded - The rounded size of the chip
 * @param {ChipAction[]} props.actions - The actions of the chip
 * @param {DeepPartial<ChipTheme>} props.theme - The theme of the chip
 * @param {string} props.className - The class name of the chip
 * @param {string} props.elementClassName - The class name of the element
 * @param {string} props.textClassName - The class name of the text
 * @returns
 * @example
 *
 * <Chip
 *  label="Chip"
 * color={ColorsEnum.primary}
 * rounded="md"
 * actions={[
 *  {
 *   icon: <TbX />,
 *  onClick: () => console.log('close'),
 * },
 * ]}
 * />
 *
 * @returns <Chip />
 */
export declare const Chip: <T extends ElementType = BaseComponentType>({ as: BaseComponent, children, label, onClick, actions, disabled, color, theme: customTheme, className, elementClassName, textClassName, onDelete, }: ChipProps<T>) => import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=chip.d.ts.map