import React from 'react'; export type VideoSourceType = 'youtube' | 'uploaded'; export interface VideoSourceSelectorProps { /** Current video source type selection */ videoSourceType: VideoSourceType; /** Callback when video source type changes */ onVideoSourceTypeChange: (type: VideoSourceType) => void; /** YouTube URL value */ youtubeUrl: string; /** Callback when YouTube URL changes */ onYoutubeUrlChange: (url: string) => void; /** Uploaded video URL value */ mainVideoUrl: string; /** Callback when uploaded video URL changes */ /** * Fired with the uploaded/typed URL. May return a promise — the upload * spinner stays up until it settles, so post-upload work (persisting the * URL, capturing + persisting the poster) finishes BEFORE the loading * state clears. Without this, the modal can be closed mid-capture and the * thumbnail is silently lost. */ onMainVideoUrlChange: (url: string) => void | Promise; /** Callback to handle video upload - receives file and returns URL or throws error */ onUploadVideo: (file: File, onProgress?: (progress: number) => void) => Promise; /** Optional: Show AI generated badge on uploaded video */ showAIBadge?: boolean; /** Optional: Whether the video was AI generated */ isAIGenerated?: boolean; /** Optional: Custom label for YouTube section */ youtubeLabel?: string; /** Optional: Custom label for upload section */ uploadLabel?: string; /** Optional: Custom placeholder for YouTube URL input */ youtubePlaceholder?: string; /** Optional: Custom helper text for YouTube section */ youtubeHelperText?: string; /** Optional: Custom empty state text for upload section */ uploadEmptyText?: string; /** Optional: Disable the component */ disabled?: boolean; /** Optional: Custom video preview component */ VideoPreviewComponent?: React.ComponentType<{ videoUrl: string; onDelete: () => void; isAIGenerated?: boolean; }>; /** Optional: Upload progress bar component */ UploadProgressComponent?: React.ComponentType<{ progress: number; message: string; className?: string; }>; /** Optional: Section title */ title?: string; /** Optional: Show section title */ showTitle?: boolean; /** Optional: Additional class name */ className?: string; } /** * VideoSourceSelector - Unified component for selecting between YouTube URL and uploaded video * * This component provides a toggle between YouTube URL input and video upload, * without clearing data when switching between options. */ export declare function VideoSourceSelector({ videoSourceType, onVideoSourceTypeChange, youtubeUrl, onYoutubeUrlChange, mainVideoUrl, onMainVideoUrlChange, onUploadVideo, showAIBadge, isAIGenerated, youtubeLabel, uploadLabel, youtubePlaceholder, youtubeHelperText, uploadEmptyText, disabled, VideoPreviewComponent, UploadProgressComponent, title, showTitle, className, }: VideoSourceSelectorProps): React.JSX.Element; export default VideoSourceSelector; //# sourceMappingURL=video-source-selector.d.ts.map