import { Component } from 'vue';
/**
 * Visual variants for the UiBadge component.
 */
export type UiBadgeVariants = 'default' | 'secondary' | 'outline' | 'destructive' | 'success' | 'warning' | 'verified';
/**
 * Size options for the UiBadge component.
 */
export type UiBadgeSize = 'default' | 'small';
/**
 * A small label for status, counts, or categories. Use for tags,
 * notification counts, status indicators, or labels.
 * @category Feedback
 * @useCases status label, notification count, tag, category, version
 * @keywords badge, label, tag, status, count, chip, pill
 * @related UiButton
 */
export interface UiBadgeProps {
    /**
     * Visual variant of the badge.
     * @default 'default'
     */
    variant?: UiBadgeVariants;
    /**
     * Size of the badge.
     * @default 'default'
     */
    size?: UiBadgeSize;
    /**
     * Whether to render as a child (Slot) instead of a wrapper element.
     * Useful for tooltips or wrapping other components.
     * @default false
     */
    asChild?: boolean;
    /**
     * Icon component to display before the badge text.
     * @example
     * ```vue
     * <UiBadge :startIcon="InfoIcon">Info</UiBadge>
     * ```
     */
    startIcon?: Component;
    /**
     * Icon component to display after the badge text.
     * @example
     * ```vue
     * <UiBadge :endIcon="CloseIcon">Dismissible</UiBadge>
     * ```
     */
    endIcon?: Component;
    /**
     * Whether the badge is disabled.
     * @default false
     */
    disabled?: boolean;
}
