import React from 'react';
import type { Faq } from '../../types/faq';
import { type FaqSchemaOptions } from './json-ld';
export interface FaqSectionProps {
    /**
     * SSR hydrate. When provided, the hook skips the first client fetch (per
     * useSelfFetch contract). The consuming server page resolves FAQs then drills
     * them into this prop — the lib never re-fetches what the host already gated on.
     */
    initialFaqs?: Faq[];
    /** Both required together for entity-attached FAQs; partial → bare /api/faqs. */
    entityType?: string;
    entityId?: number | string;
    /**
     * Heading node above the grouped list. `undefined` → default
     * `<h2>`"Frequently Asked Questions". `null` → no heading (the host page
     * owns the `<h1>`, as the standalone /faqs surface does). A React node lets a
     * platform drill its own <PageHeading> without the lib referencing platform
     * state. Also drives category nesting so the document outline stays correct:
     * `null` → categories render `<h2>` (directly under the page `<h1>`);
     * otherwise categories render `<h3>` beneath this heading.
     */
    heading?: React.ReactNode | null;
    /** Inject FAQPage schema.org JSON-LD as a <script>. Off by default so embeds
     *  don't emit duplicate schema. */
    emitJsonLd?: boolean;
    /** Overrides for the JSON-LD's name/description/url. */
    jsonLd?: FaqSchemaOptions;
    className?: string;
    /** Maps to /api/faqs `?count=` (the 5-tier fill target). Absent → param
     *  not sent (server default applies). */
    minResults?: number;
    /** Fetch-URL prefix for third-party embeds / reverse proxies
     *  ('' = same-origin relative). */
    apiBaseUrl?: string;
}
/**
 * The FAQ display surface — ONE rendering on every host: the list grouped by
 * `faq.section` (each category a heading + its own accordion, with a category
 * jump-nav once there are 2+ categories). There is no flat/ungrouped mode and
 * no page-vs-embedded shell fork; the standalone /faqs page and every embed
 * render through this single path, so they cannot drift.
 *
 * - Standalone /faqs page: pass `initialFaqs` (SSR) + `heading={null}` (the
 *   page owns the <h1>) + `emitJsonLd` with `jsonLd` overrides for SEO.
 * - Per-entity embed: pass `entityType` + `entityId` (no `initialFaqs`); the
 *   hook self-fetches `GET /api/faqs`, and `heading` is this block's own <h2>.
 *
 * CONTRACT: the consuming app MUST implement `GET /api/faqs`. On a fetch error
 * (or zero FAQs) the component renders nothing so the host page isn't
 * disfigured. The host always supplies the page shell — this renders a bare
 * <section>.
 */
export declare function FaqSection({ initialFaqs, entityType, entityId, heading, emitJsonLd, jsonLd, className, minResults, apiBaseUrl, }: FaqSectionProps): React.JSX.Element | null;
//# sourceMappingURL=faq-section.d.ts.map