import { ActionCardMetadata } from '../../molecules/action-card/types';
import { TitleMetadata } from '../../atoms/title/types';
import { AboutAction, AboutViewConfig } from './types';
import * as i0 from "@angular/core";
/**
 * `val-about-view` — vista About full-feature autocontenida (organism).
 * Promovida desde `showcase` bajo el proceso de ADR-021. Reúne:
 *  - **HERO** — logo + nombre de marca + tagline + pill de versión (copiable).
 *  - **Descripción** — título + cuerpo.
 *  - **Acciones** — action-card de rating built-in (abre `val-content-reaction`
 *    DIRECTAMENTE vía `ModalService`, sin wrapper local — decisión CTO) + las
 *    acciones genéricas que el consumer aporte por `config.actions`.
 *  - **Redes** — links sociales (`config.socialLinks`); sección oculta si vacía.
 *  - **Footer** — copyright con el año actual.
 *
 * Lo app-specific (logo, nombre, versión, redes, acciones share/faq) viaja como
 * DATA de config — NO como slots (ADR-021). La versión la pasa el consumer
 * (`config.version` = su `APP_VERSION`); la lib NO importa el `version.ts` de la
 * app. Si no se pasa versión, el pill se oculta.
 *
 * NO renderiza ion-content — vive dentro de val-page-wrapper. `ActivatedRoute`
 * se inyecta `{ optional: true }` solo para leer el route data de config.
 *
 * Auto-registra sus defaults i18n (es/en) en el constructor si el consumer no
 * proveyó el namespace configurado (default `Settings.About`).
 *
 * GOTCHA i18n ContentReaction: `val-content-reaction` exige su namespace
 * `ContentReaction` registrado donde se use (key faltante en binding + CD =
 * navegador congelado en dev). `ContentReactionComponent` se auto-registra ese
 * namespace en SU constructor, y como se abre vía `ModalService` ese constructor
 * corre antes de que su template binde — queda cubierto. Igual lo importamos
 * como dependencia explícita de esta vista para que la garantía sea local.
 */
export declare class AboutViewComponent {
    private nav;
    private i18n;
    private modalService;
    private toast;
    private route;
    /**
     * Config vía @Input (object-first). Si no se pasa, se cae al route data
     * `aboutConfig` (poblado por `provideValtechAboutRoutes`). `resolvedConfig`
     * mergea con los defaults — `@Input` gana sobre route data.
     */
    config?: AboutViewConfig;
    readonly resolvedConfig: import("@angular/core").Signal<Required<Omit<AboutViewConfig, "onRated">> & Pick<AboutViewConfig, "onRated">>;
    /** Namespace i18n resuelto (capturado para llamadas no-reactivas). */
    private get ns();
    readonly brandName: import("@angular/core").Signal<string>;
    readonly logoSrc: import("@angular/core").Signal<string>;
    readonly version: import("@angular/core").Signal<string>;
    readonly socialLinks: import("@angular/core").Signal<{
        icon: string;
        url: string;
        label: string;
    }[]>;
    readonly showRating: import("@angular/core").Signal<boolean>;
    readonly actions: import("@angular/core").Signal<AboutAction[]>;
    /** Copyright del footer — año actual interpolado en `copyrightText`. */
    readonly copyright: import("@angular/core").Signal<string>;
    /** Title metadata para secciones — bold + size small. */
    readonly rateActionCard: import("@angular/core").Signal<ActionCardMetadata>;
    constructor();
    /** Helper i18n bound al namespace resuelto. Reactivo vía `lang()`. */
    protected tt(key: string): string;
    /** Title metadata para secciones — bold + size small. */
    protected sectionTitle(key: string): TitleMetadata;
    /** ActionCardMetadata para una acción genérica del consumer. */
    protected extraActionCard(action: AboutAction): ActionCardMetadata;
    /** Copia la versión al portapapeles + toast (color dark). */
    copyVersion(): Promise<void>;
    /** Abre una URL externa en nueva tab. `mailto:` queda en la misma tab. */
    openUrl(url: string): void;
    /**
     * "Calificar la app" — abre `val-content-reaction` DIRECTAMENTE como sheet
     * modal (sin wrapper local — decisión CTO). El componente persiste la reacción
     * contra el backend de feedback y muestra su propio estado de "gracias"; el
     * sheet se cierra arrastrando (breakpoint 0). El namespace i18n
     * `ContentReaction` lo auto-registra `ContentReactionComponent` en su
     * constructor, que corre al crear el modal — sin riesgo de key faltante.
     *
     * Sheet (bottom sheet): el contenido scrollea dentro y el botón "Enviar" queda
     * siempre alcanzable, también en viewports chicos.
     */
    openRating(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AboutViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AboutViewComponent, "val-about-view", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
}
