import { HTMLAttributes } from "react";
import * as class_variance_authority_types11 from "class-variance-authority/types";
import { VariantProps } from "class-variance-authority";

//#region src/components/Badge/index.d.ts

/**
 * Badge color variants enum
 * @description Defines the available color themes for the badge component
 */
declare enum BadgeColor {
  PRIMARY = "primary",
  SECONDARY = "secondary",
  DESTRUCTIVE = "destructive",
  SUCCESS = "success",
  ERROR = "error",
  NEUTRAL = "neutral",
  LIGHT = "light",
  DARK = "dark",
  TEXT = "text",
  CUSTOM = "custom",
}
/**
 * Badge visual variants enum
 * @description Defines the available visual styles for the badge component
 */
declare enum BadgeVariant {
  DEFAULT = "default",
  NONE = "none",
  OUTLINE = "outline",
  HOVERABLE = "hoverable",
}
/**
 * Badge size variants enum
 * @description Defines the available sizes for the badge component
 */
declare enum BadgeSize {
  SMALL = "sm",
  MEDIUM = "md",
  LARGE = "lg",
}
/**
 * Badge component variants using class-variance-authority
 * @description Defines the styling variants for different badge combinations
 */
declare const badgeVariants: (props?: {
  color?: BadgeColor;
  variant?: BadgeVariant;
  size?: BadgeSize;
} & class_variance_authority_types11.ClassProp) => string;
/**
 * Badge component props interface
 * @description Comprehensive props for the Badge component with accessibility and interactive features
 */
interface BadgeProps extends HTMLAttributes<HTMLElement> {
  /** The content to display inside the badge */
  children?: React.ReactNode;
  /** Color theme variant */
  color?: BadgeColor;
  /** Visual style variant */
  variant?: BadgeVariant;
  /** Size of the badge */
  size?: BadgeSize;
  /** Whether the badge is clickable */
  clickable?: boolean;
  /** Whether the badge is dismissible (shows close button) */
  dismissible?: boolean;
  /** Click handler for the badge */
  onClick?: (event: React.MouseEvent<HTMLElement>) => void;
  /** Click handler for the dismiss button */
  onDismiss?: () => void;
  /** ARIA label for accessibility */
  'aria-label'?: string;
  /** Badge role for accessibility (default: 'status') */
  role?: 'status' | 'button' | 'generic';
  /** Whether badge should be focusable */
  tabIndex?: number;
}
/**
 * Utility type for badge variant props
 */
type BadgeVariantProps = VariantProps<typeof badgeVariants>;
/**
 * Badge component for displaying status indicators, labels, and notifications
 *
 * @description A flexible badge component that supports multiple visual styles, colors, and interactive features.
 * It maintains accessibility standards and provides comprehensive customization options.
 *
 * @example
 * ```tsx
 * // Basic badge
 * <Badge>New</Badge>
 *
 * // Colored badge
 * <Badge color={BadgeColor.DESTRUCTIVE}>Error</Badge>
 *
 * // Clickable badge
 * <Badge clickable onClick={() => console.log('clicked')}>
 *   Clickable
 * </Badge>
 *
 * // Dismissible badge
 * <Badge dismissible onDismiss={() => console.log('dismissed')}>
 *   Dismissible
 * </Badge>
 * ```
 */
declare const Badge: React.FC<BadgeProps>;
//#endregion
export { Badge, BadgeColor, BadgeProps, BadgeSize, BadgeVariant, BadgeVariantProps, badgeVariants };
//# sourceMappingURL=index.d.ts.map