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. `undefined` → variant default (page: <h1>, embedded: <h2>
     * "Frequently Asked Questions"); `null` → no heading. React node so
     * platforms can drill their local <PageHeading> component without the lib
     * referencing platform state.
     */
    heading?: React.ReactNode | null;
    /**
     * Shell variant — the FAQ LIST itself renders identically everywhere (ONE
     * flat accordion, `faq.section` as a per-row chip, never a heading):
     *   - 'page' — the standalone /faqs surface: <main> shell + page gutters,
     *     default <h1> heading.
     *   - 'embedded' — a section inside a host page (entity detail rails, the
     *     global nested-page block): bare <section>, default <h2> heading.
     * Back-compat default: `heading === null` → 'embedded', else 'page' (the
     * pre-variant discriminator).
     */
    variant?: 'page' | 'embedded';
    /** 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;
}
/**
 * Generic, embeddable FAQ display surface.
 *
 * - Standalone /faqs page: pass `initialFaqs` from the server + `heading` +
 *   `emitJsonLd` with `jsonLd` overrides for SEO.
 * - Per-entity embed: pass `entityType` + `entityId` (no `initialFaqs`); the
 *   hook self-fetches and the public /api/faqs endpoint picks override-vs-fallback.
 *
 * CONTRACT: the consuming app MUST implement `GET /api/faqs`. Without it,
 * useSelfFetch reports `error:true` (logged once); in embedded mode (heading
 * === null) this component renders nothing so the host page isn't disfigured.
 */
export declare function FaqSection({ initialFaqs, entityType, entityId, heading, variant, emitJsonLd, jsonLd, className, minResults, apiBaseUrl, }: FaqSectionProps): React.JSX.Element | null;
//# sourceMappingURL=faq-section.d.ts.map