/**
 * Configuración acotada de `val-about-view` (object-first). La vista About es
 * app-specific por naturaleza (logo, nombre, versión, redes, acciones extra),
 * así que lo propio de cada app se parametriza como **DATA de config** — NO como
 * slots arbitrarios (ADR-021: una vista full-feature no abre slots; si falta
 * algo, se promueve un nuevo punto de extensión).
 *
 * Ejes de variación permitidos:
 *  - **branding** — `brand.name` / `brand.logoSrc` (qué muestra el HERO).
 *  - **versión** — `version` la pasa el consumer (la lib NO puede importar el
 *    `version.ts` de la app). Si no se pasa, se oculta el pill de versión.
 *  - **redes** — `socialLinks`; si está vacío se oculta la sección social.
 *  - **rating** — `showRating` + `ratingEntityId` + `onRated`.
 *  - **acciones extra** — `actions[]` genéricas que el consumer agrega junto a
 *    la acción de rating built-in.
 *  - **branding i18n** — `i18nNamespace` (default `'Settings.About'`).
 */
/** Marca a mostrar en el HERO (logo + nombre). */
export interface AboutBrand {
    /** Nombre de la marca. Default `'Valtech'`. */
    name?: string;
    /** Ruta del logo. Default `'assets/images/main-icon.png'`. */
    logoSrc?: string;
}
/**
 * Acción genérica extra de la sección "Acciones" (además del rating built-in).
 * El consumer la modela completa (label/descripción/ícono + handler). Las
 * acciones share/faq de showcase NO son genéricas (Web Share API y ruta interna
 * de la app), por eso se exponen como `actions` para que cada app aporte las
 * suyas en vez de hardcodearlas en la lib.
 */
export interface AboutAction {
    /** Texto principal de la action-card. */
    label: string;
    /** Texto secundario (opcional). */
    description?: string;
    /** Ionicon name (ej. `'share-social-outline'`). */
    icon?: string;
    /** Handler del click. */
    onClick: () => void;
}
export interface AboutViewConfig {
    /** Marca del HERO (logo + nombre). Default Valtech. */
    brand?: AboutBrand;
    /**
     * Versión a mostrar en el pill (el consumer pasa su `APP_VERSION`). La lib NO
     * importa el `version.ts` de la app. Si no se pasa, el pill de versión se
     * oculta.
     */
    version?: string;
    /**
     * Redes sociales. Si está vacío (o no se pasa), la sección social se oculta.
     * `icon` = ionicon name; `url` = destino; `label` = aria-label.
     */
    socialLinks?: {
        icon: string;
        url: string;
        label: string;
    }[];
    /** Muestra la action-card de rating built-in. Default `true`. */
    showRating?: boolean;
    /**
     * `entityId` del `entityRef` que recibe `val-content-reaction` al calificar
     * (el `entityType` es siempre `'app'`). Default `'experience'`.
     */
    ratingEntityId?: string;
    /** Acciones genéricas extra de la sección "Acciones". Default `[]`. */
    actions?: AboutAction[];
    /**
     * Namespace i18n con el que la vista resuelve sus textos.
     * Default `'Settings.About'`.
     */
    i18nNamespace?: string;
    /** Hook tras enviar la calificación (rating) desde `val-content-reaction`. */
    onRated?: () => void;
}
