import { ArticleMetadata } from '../article/types';
import { FaqCategory, FaqItem, FaqMetadata } from './types';
import * as i0 from "@angular/core";
/**
 * `val-faq`
 *
 * Organism de preguntas frecuentes. Q&A categorizado con accordion colapsable
 * y buscador en vivo. Pensado para vistas FAQ públicas — el caller puede
 * reusar la misma data (`FaqMetadata.categories`) para emitir el structured
 * data `FAQPage` (JSON-LD) y ganar rich results en buscadores.
 *
 * Las respuestas (`FaqItem.answer`) son **Markdown** — se parsean con
 * `parseMarkdownArticle` y se renderizan vía `val-article`. Soportan links,
 * listas, negritas, tablas, etc.
 *
 * @example
 * ```html
 * <val-faq [props]="{ categories: faqCategories, searchable: true }" />
 * ```
 */
export declare class FaqComponent {
    private readonly i18n;
    private readonly props_;
    set props(value: FaqMetadata | undefined);
    get props(): FaqMetadata;
    /** Término de búsqueda actual. */
    private readonly query;
    /**
     * Cache de respuestas parseadas (Markdown → ArticleMetadata). Se reconstruye
     * solo cuando cambian las categorías — el parseo NO corre por keystroke.
     * Keyed por id de item (los ids son únicos en toda la FAQ).
     */
    private readonly parsedAnswers;
    /** Respuesta parseada de un item — desde el cache. */
    answerOf(item: FaqItem): ArticleMetadata;
    /**
     * Categorías visibles tras el filtro. Una categoría desaparece si ninguna
     * de sus preguntas matchea. Match sobre pregunta + respuesta (raw markdown),
     * case-insensitive.
     */
    readonly visibleCategories: import("@angular/core").Signal<FaqCategory[]>;
    /** `true` si se debe mostrar el label de cada categoría. */
    readonly showCategoryLabel: import("@angular/core").Signal<boolean>;
    onSearch(term: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FaqComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FaqComponent, "val-faq", never, { "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
}
