/** Opcion dentro de una accion tipo lista (list message / selector). */
export interface WhatsAppPreviewListItem {
    id?: string;
    title: string;
    description?: string;
    /** Emoji o caracter visible a la izquierda (ej. señal, TV). */
    emoji?: string;
    /** Icono Iconify si no hay `emoji` */
    icon?: string;
}
/** Accion de plantilla (CTA / respuesta rapida / lista) para el preview; el consumidor mapea el JSON del backend a esta forma. */
export interface WhatsAppPreviewAction {
    /**
     * `url` — enlace externo (icono tipo “abrir enlace”).
     * `quick_reply` — respuesta rapida (icono tipo respuesta).
     * `phone` — llamada.
     * `list` — abre hoja inferior con opciones (list message).
     */
    type: "url" | "phone" | "quick_reply" | "list";
    /**
     * Texto del boton en la burbuja.
     * Para `list`, suele ser el disparador (ej. "Selecciona").
     */
    title: string;
    /** URL si type es "url" (si falta, se usa `value`) */
    url?: string;
    /** Telefono si type es "phone"; para "url" puede usarse como URL alternativa */
    value?: string;
    /**
     * Enfoque visual (como en WhatsApp: principal en verde marca, secundario en gris).
     * Por defecto `primary`. No aplica a `list` (siempre estilo lista verde).
     */
    emphasis?: "primary" | "muted";
    /** Si type es `list`: titulo en la hoja (por defecto el mismo `title` del boton). */
    listHeaderTitle?: string;
    /** Si type es `list`: filas de la hoja (obligatorio al menos uno). */
    listItems?: WhatsAppPreviewListItem[];
    /** Texto pie de la hoja (ej. instruccion al usuario). */
    listFooterHint?: string;
}
export interface WhatsAppPreviewTranslations {
    /** Business name displayed in header */
    businessName?: string;
    /** Business initials shown in avatar */
    businessInitials?: string;
    /** Online status text */
    onlineStatus?: string;
    /** Alt text for preview image */
    imageAlt?: string;
    /** "View more" text for caption truncation */
    viewMore?: string;
    /** "View less" text for caption truncation */
    viewLess?: string;
    /** aria-label del boton cerrar en la hoja de lista */
    listCloseAriaLabel?: string;
    /** Pie de la hoja de lista si no se pasa por accion */
    listSelectHintDefault?: string;
}
export interface WhatsAppPreviewProps {
    /** URL of the image to display */
    imageUrl?: string;
    /** Caption/text content of the message */
    caption: string;
    /** Preview variant: compact for carousel, full for wizard */
    variant?: "compact" | "full";
    /** Show WhatsApp header with business info */
    showHeader?: boolean;
    /** Maximum caption length before truncation */
    maxCaptionLength?: number;
    /** Callback for "view more/less" toggle */
    onToggleCaption?: () => void;
    /** State for expanded caption */
    showFullCaption?: boolean;
    /** CTA button type (e.g. "CALL_NOW", "URL") */
    ctaType?: string;
    /** CTA button label text */
    ctaLabel?: string;
    /** CTA button value (phone number or URL) */
    ctaValue?: string;
    /**
     * Lista de acciones (botones) tipo plantilla WhatsApp.
     * Si tiene al menos un elemento con `title` no vacio, tiene prioridad sobre `ctaType` / `ctaLabel` / `ctaValue`.
     */
    previewAction?: WhatsAppPreviewAction[];
    /** Tras elegir una fila en una accion `list`, el consumidor puede reaccionar (p. ej. analytics). */
    onListItemPick?: (detail: {
        actionIndex: number;
        item: WhatsAppPreviewListItem;
    }) => void;
    /** If true, shows square image and more text lines (for campaigns) */
    campaignView?: boolean;
    /** Translations for i18n support */
    translations?: WhatsAppPreviewTranslations;
    /** Additional className for custom styling */
    className?: string;
    /** Locale for time formatting (e.g. "es-ES", "en-US") */
    timeLocale?: string;
}
//# sourceMappingURL=WhatsAppPreview.types.d.ts.map