import { type ComponentPropsWithoutRef, type MouseEvent, type ReactNode } from "react";
export type ChipVariant = "default" | "primary" | "success" | "warning" | "error";
export type ChipSize = "sm" | "md" | "lg";
export interface ChipProps extends Omit<ComponentPropsWithoutRef<"span">, "color" | "onClick"> {
    variant?: ChipVariant;
    size?: ChipSize;
    /** Avatar slot rendered before the label (portrait-style, circular). */
    avatar?: ReactNode;
    /** Icon slot rendered before the label (glyph-style, currentColor). Ignored
     * when `avatar` is also set. */
    icon?: ReactNode;
    /** Show a `×` button to remove the chip. */
    removable?: boolean;
    /** Fires when the remove button is clicked (or activated via keyboard).
     * Receives the event so callers can `stopPropagation` / `preventDefault`. */
    onRemove?: (event: MouseEvent<HTMLButtonElement>) => void;
    /** Accessible label for the remove button. Defaults to `"Remove"`. */
    removeLabel?: string;
    /** Click handler for the entire chip (filter-chip pattern). Sets
     * `role="button"` + Enter/Space activation. */
    onClick?: (event: MouseEvent<HTMLSpanElement>) => void;
    /** Toggle state for filter chips. When set, advertises `aria-pressed`
     * and tints the chip with accent chrome. Pair with `onClick` to wire a
     * stateful filter cluster. */
    selected?: boolean;
    disabled?: boolean;
    /** Render Chip's styling onto a custom child element (Radix-style Slot).
     * Internal slots (avatar / icon / label / remove button) are NOT rendered
     * when `asChild` is true — useful for "chip-as-link" / router-link. */
    asChild?: boolean;
    children?: ReactNode;
}
export declare const Chip: import("react").ForwardRefExoticComponent<ChipProps & import("react").RefAttributes<HTMLSpanElement>>;
//# sourceMappingURL=Chip.d.ts.map