import { default as React } from 'react';
import { ButtonColors } from '../../../shared/types/types';
import { ButtonSlotLayout, ButtonSlotSpreadSides } from '../../../shared/types/button';
export interface ButtonContentProps {
    /** Contenido a mostrar */
    displayText: React.ReactNode;
    /** Si hay leftSlot o rightSlot */
    hasSlots: boolean;
    /** Si hay badge inline tras el texto (evita `ui-w-full` que empuja el badge fuera con overflow) */
    hasTrailingBadge?: boolean;
    /** Modo de layout de slots (solo afecta clases cuando `spreadSides` está definido) */
    slotLayout?: ButtonSlotLayout;
    /** Qué slots hay en modo `spread`; si es `undefined`, el texto usa el layout inline clásico */
    spreadSides?: ButtonSlotSpreadSides | null;
    /** Estilo inline para el texto */
    textStyle?: React.CSSProperties;
    /** Color del texto */
    textColor?: ButtonColors;
    /** Alineación del texto */
    textAlign?: 'left' | 'center' | 'right';
    /** Referencia al elemento de medición */
    measureRef: React.RefObject<HTMLSpanElement>;
    /** Referencia al contenedor del texto / contenido */
    textRef: React.RefObject<HTMLDivElement>;
    /** Clases para el span de medición */
    measureSpanClassName: string;
}
/**
 * Renderiza el contenido de texto del botón
 *
 * @example
 * ```tsx
 * <ButtonContent
 *   displayText="Click me"
 *   hasSlots={false}
 *   textColor="primary"
 *   textAlign="center"
 *   measureRef={measureRef}
 *   textRef={textRef}
 *   measureSpanClassName={measureSpanClassName}
 * />
 * ```
 */
export declare const ButtonContent: React.FC<ButtonContentProps>;
//# sourceMappingURL=ButtonContent.d.ts.map