import React, { ReactNode } from 'react'; import type { AIRequiredField } from './ai-enrich'; export interface HighlightVideoCombinedSectionProps { /** Target highlight duration in seconds */ targetDurationSeconds: number; /** Handler for duration changes */ onTargetDurationChange: (seconds: number) => void; /** Whether config section is disabled */ configDisabled?: boolean; /** Handler to trigger highlight generation */ onGenerateHighlight: () => void; /** Whether generation is currently processing */ isProcessing: boolean; /** Whether the generate button can be clicked */ canEnrich: boolean; /** Required fields to display */ requiredFields: AIRequiredField[]; /** Current status of the operation */ status?: 'loading' | 'success' | 'error' | undefined; /** Status message to display */ statusMessage?: string; /** Message shown when button is disabled */ disabledMessage?: string; /** Whether cancel is available */ showCancel?: boolean; /** Handler to cancel processing */ onCancel?: () => void; /** Whether cancellation is in progress */ isCancelling?: boolean; /** Whether result already exists (affects button label) */ hasResult?: boolean; /** Custom title */ title?: string; /** Custom description - if not provided, auto-generated from duration */ description?: string; /** Custom button label */ buttonLabel?: string; /** Custom loading label */ loadingLabel?: string; /** Highlight video URL */ highlightVideoUrl?: string | null; /** Video thumbnail URL */ highlightVideoThumbnail?: string | null; /** Video duration in milliseconds */ highlightVideoDurationMs?: number | null; /** Whether video was AI generated */ highlightVideoSource?: 'manual' | 'ai_generated' | null; /** Handler to upload a new highlight video - receives File, should return uploaded URL */ onUpload: (file: File) => Promise; /** Handler to delete the highlight video */ onDelete: () => Promise; /** Whether upload is in progress */ isUploading?: boolean; /** Custom label for preview section */ previewLabel?: string; /** Custom empty state message */ emptyMessage?: string; /** Upload progress component (optional) */ uploadProgressComponent?: ReactNode; /** Highlight captions SRT content (highlight_srt_content) */ subtitles?: string; /** Callback when highlight subtitles change */ onSubtitlesChange?: (value: string) => void; /** Whether the highlight subtitles were AI generated */ isSubtitlesAIGenerated?: boolean; /** Video preview component - receives video data, should render the preview */ renderVideoPreview: (props: { videoUrl: string; title: string; thumbnailUrl?: string; onDelete: () => Promise; }) => ReactNode; /** Additional class name */ className?: string; } /** * HighlightVideoCombinedSection - Unified component combining Config + AI Enrich + Preview * * This component provides a complete UI for highlight video generation with: * 1. HighlightConfigSection for duration and subtitle settings * 2. AIEnrichSection for triggering generation and showing status * 3. HighlightVideoPreview for viewing/uploading highlight videos * * Used by both CustomerInterview and ProductRelease modals. */ export declare function HighlightVideoCombinedSection({ targetDurationSeconds, onTargetDurationChange, configDisabled, onGenerateHighlight, isProcessing, canEnrich, requiredFields, status, statusMessage, disabledMessage, showCancel, onCancel, isCancelling, hasResult, title, description, buttonLabel, loadingLabel, highlightVideoUrl, highlightVideoThumbnail, highlightVideoDurationMs, highlightVideoSource, onUpload, onDelete, isUploading, previewLabel, emptyMessage, uploadProgressComponent, subtitles, onSubtitlesChange, isSubtitlesAIGenerated, renderVideoPreview, className, }: HighlightVideoCombinedSectionProps): React.JSX.Element; export default HighlightVideoCombinedSection; //# sourceMappingURL=highlight-video-combined-section.d.ts.map