import { ComponentType } from 'react';
import type { VideoTeaser } from '../../types/video-processing';
/**
 * <EntityVideoSection> — public detail-page video block.
 *
 * Tabbed Full Video / Highlights when both exist, plus optional
 * markdown summary + video bites grid. The actual video rendering
 * (YouTube facade, Mux HLS, MP4 fallback) is delegated to `<Video>` —
 * the single source of truth.
 *
 * YouTube takes precedence over the uploaded video when both
 * `youtubeUrl` and `mainVideoUrl` are present. That precedence is
 * resolved here (in the section wrapper) rather than inside `<Video>`,
 * so the underlying primitive stays single-source-per-render.
 */
interface MarkdownRendererProps {
    content: string;
}
export interface EntityVideoSectionProps {
    /** Main uploaded video URL. */
    mainVideoUrl?: string | null;
    /** YouTube URL (takes priority over `mainVideoUrl` for display). */
    youtubeUrl?: string | null;
    /** AI-generated highlight video URL. */
    highlightVideoUrl?: string | null;
    /** Thumbnail for highlight video. */
    highlightVideoThumbnail?: string | null;
    /** Poster/thumbnail for main video. */
    mainVideoPoster?: string | null;
    /** Title for YouTube embed. */
    title?: string;
    /** AI-generated video summary (markdown). */
    videoSummary?: string | null;
    /** Video bites/teasers array. */
    videoBites?: VideoTeaser[];
    /** Title for the video bites section. */
    bitesTitle?: string;
    /** Whether to filter bites to published only. */
    filterPublishedBites?: boolean;
    /** Markdown renderer component injected by the host app. */
    MarkdownRenderer?: ComponentType<MarkdownRendererProps>;
    /**
     * Raw SRT content. Deprecated — pass `captionsUrl` instead.
     * Forwarded to `<Video>` for the dev-only warning.
     */
    srtContent?: string | null;
    /** HTTPS URL to a VTT captions file (rendered as native `<track>`). */
    captionsUrl?: string | null;
    /** LCP hint — when true, the full-video tab's poster eager-loads. */
    priority?: boolean;
}
export declare function EntityVideoSection({ mainVideoUrl, youtubeUrl, highlightVideoUrl, highlightVideoThumbnail, mainVideoPoster, title, videoSummary, videoBites, bitesTitle, filterPublishedBites, MarkdownRenderer, srtContent, captionsUrl, priority, }: EntityVideoSectionProps): import("react").JSX.Element | null;
export {};
//# sourceMappingURL=entity-video-section.d.ts.map