import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-DmVsuoHE.js';
import './blocks-XLPGq8A5.js';
import 'class-variance-authority';
import './button-variants-CdNtNOuP.js';
import 'class-variance-authority/types';

/**
 * A stat with animated counter.
 * Used to display metrics that animate from 0 to their target value.
 */
interface AnimatedStat {
    /**
     * The end value for the counter animation
     */
    value: number;
    /**
     * Prefix for the value (e.g., "$", "+")
     */
    prefix?: string;
    /**
     * Suffix for the value (e.g., "%", "K", "M", "+")
     */
    suffix?: string;
    /**
     * The label for the stat
     */
    label: React.ReactNode;
    /**
     * Icon name in format: prefix/name (e.g., "lucide/users")
     */
    icon?: string;
    /**
     * Custom icon element (overrides icon name)
     */
    iconSlot?: React.ReactNode;
    /**
     * Additional CSS classes for the stat item
     */
    className?: string;
}
/**
 * Props for the StatsAnimatedCounter component.
 * A stats section with animated number counters that trigger on scroll.
 */
interface StatsAnimatedCounterProps {
    /**
     * Main heading content
     */
    heading?: React.ReactNode;
    /**
     * Description content below the heading
     */
    description?: React.ReactNode;
    /**
     * Array of stats to display with animated counters
     */
    stats?: AnimatedStat[];
    /**
     * Custom slot for rendering stats (overrides stats array)
     */
    statsSlot?: React.ReactNode;
    /**
     * Animation duration in milliseconds
     * @default 2000
     */
    animationDuration?: number;
    /**
     * Background style for the section
     */
    background?: SectionBackground;
    /**
     * Vertical spacing for the section
     */
    spacing?: SectionSpacing;
    /**
     * Background pattern
     */
    pattern?: PatternName;
    /**
     * Pattern opacity (0-1)
     */
    patternOpacity?: number;
    /**
     * Additional CSS classes for the pattern
     */
    patternClassName?: string;
    /**
     * Additional CSS classes for the section
     */
    className?: string;
    /**
     * Additional CSS classes for the container
     */
    containerClassName?: string;
    /**
     * Additional CSS classes for the content wrapper
     */
    contentClassName?: string;
    /**
     * Additional CSS classes for the heading
     */
    headingClassName?: string;
    /**
     * Additional CSS classes for the description
     */
    descriptionClassName?: string;
    /**
     * Additional CSS classes for the stats container
     */
    statsClassName?: string;
    /**
     * Additional CSS classes for stat values
     */
    statValueClassName?: string;
    /**
     * Additional CSS classes for stat labels
     */
    statLabelClassName?: string;
    /**
     * Additional CSS classes for stat icons
     */
    statIconClassName?: string;
}
/**
 * StatsAnimatedCounter - A stats section featuring animated number counters that
 * trigger when scrolled into view. Each stat displays an optional icon, animated
 * value with prefix/suffix, and label. Uses intersection observer to start the
 * animation only when visible. Ideal for impact sections, achievements, or any
 * metrics that benefit from engaging number animations.
 *
 * @example
 * ```tsx
 * <StatsAnimatedCounter
 *   heading="Our Impact"
 *   stats={[
 *     { value: 500, suffix: "+", label: "Projects Completed", icon: "lucide/folder-check" },
 *     { value: 98, suffix: "%", label: "Satisfaction Rate", icon: "lucide/heart" },
 *   ]}
 *   animationDuration={2000}
 * />
 * ```
 */
declare function StatsAnimatedCounter({ heading, description, stats, statsSlot, animationDuration, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, statsClassName, statValueClassName, statLabelClassName, statIconClassName, }: StatsAnimatedCounterProps): react_jsx_runtime.JSX.Element;

export { type AnimatedStat, StatsAnimatedCounter, type StatsAnimatedCounterProps };
