import { Colors, IconType, IconFontColor } from './types';
import { IconProp } from '@fortawesome/fontawesome-svg-core';
/**
 * Colores semánticos para el ProgressBar según Figma
 */
export type ProgressBarColor = 'brand' | 'success' | 'danger' | 'warning' | 'info' | 'neutral';
/**
 * Tamaños del ProgressBar según Figma
 * xxs: 8px, xs: 10px, sm: 12px, md: 16px, lg: 20px
 */
export type ProgressBarSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg';
/**
 * Tipo de texto de ayuda
 */
export type HelperTextType = 'error' | 'size' | 'custom';
/**
 * Props para el componente _bar (barra de progreso interna)
 */
export interface BarProgressProps {
    /** Porcentaje de progreso (0-100) */
    progress?: number;
    /** Tamaño de la barra */
    size?: ProgressBarSize;
    /** Color de la barra */
    color?: ProgressBarColor;
    /** Duración de la animación en ms */
    duration?: number;
    /** Mostrar fondo de la barra */
    withBackground?: boolean;
    /** Clases adicionales */
    className?: string;
}
/**
 * Props para el componente de label de progreso
 */
export interface LabelProgressProps {
    /** Texto del label (ej: "Label") */
    label?: string;
    /** Valor numérico a mostrar */
    value?: number;
    /** Sufijo del valor (ej: "%" o "MB") */
    suffix?: string;
    /** Clases adicionales */
    className?: string;
}
/**
 * Props para el header del progress bar
 */
export interface ProgressHeaderProps {
    /** Texto del label */
    label?: string;
    /** Valor de progreso */
    progress?: number;
    /** Sufijo del progreso */
    progressSuffix?: string;
    /** Texto adicional (ej: "1m restante") */
    eta?: string;
    /** Mostrar botón de cerrar */
    showCloseButton?: boolean;
    /** Callback al cerrar */
    onClose?: () => void;
    /** Clases adicionales */
    className?: string;
}
/**
 * Props principales del ProgressBar
 */
export interface ProgressBarProps {
    /** Color de la barra */
    color?: ProgressBarColor;
    /** Porcentaje de progreso (0-100) */
    progress?: number;
    /** Texto del label */
    label?: string;
    /** Mostrar label */
    showLabel?: boolean;
    /** Mostrar porcentaje de progreso */
    showProgress?: boolean;
    /** Sufijo del progreso (por defecto "%") */
    progressSuffix?: string;
    /** Texto ETA (ej: "1m restante") */
    eta?: string;
    /** Tamaño de la barra */
    size?: ProgressBarSize;
    /** Ícono a mostrar (deprecado - usar showCloseButton) */
    icon?: IconType | IconProp;
    iconDuotonePrimary?: IconFontColor;
    iconDuotoneSecondary?: IconFontColor;
    iconDuotoneOpacityPrimary?: number;
    iconDuotoneOpacitySecondary?: number;
    /** Mostrar ícono (deprecado - usar showCloseButton) */
    showIcon?: boolean;
    /** Clases adicionales */
    className?: string;
    /** Duración de la animación */
    duration?: number;
    /** Mostrar fondo de la barra */
    withBackground?: boolean;
    /** Texto de ayuda inferior */
    helperText?: string;
    /** Tipo de texto de ayuda */
    helperTextType?: HelperTextType;
    /** Modo compacto (sin texto de ayuda) */
    compact?: boolean;
    /** Estado deshabilitado */
    disabled?: boolean;
    /** Mostrar botón de cerrar */
    showCloseButton?: boolean;
    /** Callback al cerrar */
    onClose?: () => void;
    /**
     * Duración de la cuenta regresiva en segundos.
     * Si se proporciona, la barra animará automáticamente desde el valor de `progress` hasta 0.
     * @example countdown={5} // La barra baja de progress a 0 en 5 segundos
     */
    countdown?: number;
    /**
     * Callback que se ejecuta cuando la cuenta regresiva llega a 0.
     * Solo se ejecuta si `countdown` está definido.
     */
    onCountdownComplete?: () => void;
    /** @deprecated - usar helperText */
    description?: string;
    /** @deprecated - usar progressSuffix */
    progressChar?: string;
    /** @deprecated */
    status?: 'neutral' | 'blue' | 'red';
    /** @deprecated */
    borderStyle?: 'dashed' | 'solid' | 'small-solid';
}
/**
 * Mapeo de colores legacy a colores semánticos
 */
export declare const PROGRESS_COLOR_MAP: Record<Colors, ProgressBarColor>;
//# sourceMappingURL=progressbar.d.ts.map