import { HTMLAttributes } from 'react';
import { IconDefinition } from '@gnome-ui/icons';
export interface ChipProps extends HTMLAttributes<HTMLElement> {
    /** Text label displayed inside the chip. */
    label: string;
    /** Leading icon from `@gnome-ui/icons`. */
    icon?: IconDefinition;
    /**
     * When provided, renders a remove (×) button and calls this handler.
     * The chip root becomes a `<span>`; only the remove button is interactive.
     */
    onRemove?: () => void;
    /**
     * When true the chip renders as a toggle button.
     * Use `selected` + `onToggle` to control its state.
     */
    selectable?: boolean;
    /** Active/selected state. Only relevant when `selectable` is true. */
    selected?: boolean;
    /**
     * Called when a selectable chip is clicked.
     * Only relevant when `selectable` is true.
     */
    onToggle?: () => void;
    /** Disabled state — applies to both selectable chips and the remove button. */
    disabled?: boolean;
}
/**
 * Compact pill-shaped label for tags, filters, and selection states.
 *
 * Three usage modes:
 * - **Static** — just a visual label (no `onRemove`, no `selectable`).
 * - **Removable** — add `onRemove` to show a × button.
 * - **Selectable** — add `selectable` + `selected` + `onToggle` for toggle behaviour.
 *
 * Pair with `WrapBox` for multi-chip layouts.
 */
export declare function Chip({ label, icon, onRemove, selectable, selected, onToggle, disabled, className, ...props }: ChipProps): import("react/jsx-runtime").JSX.Element;
