import type { VideoAsset } from './types.js'; export interface YouTubeReference { videoId: string; title: string; description: string; channelTitle: string; publishedAt: string; thumbnailUrl?: string; url: string; duration?: string; viewCount?: string; likeCount?: string; license?: string; sourceType: 'reference-only'; allowedForRendering: false; untrustedExternalText: true; query: string; } declare function sanitizeExternalText(value: string | undefined, maxLength: number): string; export interface ResearchYouTubeInput { projectDir: string; queries?: string[]; maxResultsPerQuery?: number; regionCode?: string; publishedAfter?: string; creativeCommonsOnly?: boolean; order?: 'relevance' | 'viewCount' | 'date'; } export declare function researchYouTube(input: ResearchYouTubeInput): Promise; export interface PexelsVideoResult { id: number; width: number; height: number; duration: number; pageUrl: string; author?: string; authorUrl?: string; previewImage?: string; downloadUrl?: string; downloadWidth?: number; downloadHeight?: number; license: 'Pexels License'; attribution: string; query: string; } interface PexelsSearchResponse { videos?: Array<{ id: number; width: number; height: number; duration: number; url: string; image?: string; user?: { name?: string; url?: string; }; video_files?: Array<{ link?: string; width?: number; height?: number; file_type?: string; }>; }>; } declare function bestPexelsFile(files?: NonNullable[number]['video_files']): { link?: string; width?: number; height?: number; file_type?: string; }; export interface SearchStockInput { projectDir: string; queries?: string[]; orientation?: 'landscape' | 'portrait' | 'square'; perQuery?: number; } export declare function searchStock(input: SearchStockInput): Promise; declare function validatePexelsUrl(value: string): URL; declare function hasMp4Signature(filePath: string): boolean; export interface DownloadStockSelection { id: number; downloadUrl: string; pageUrl: string; author?: string; attribution?: string; } export declare function downloadStockAssets(projectDir: string, selections: DownloadStockSelection[]): Promise; export interface GenerateImageInput { projectDir: string; prompt: string; name?: string; model?: 'gpt-image-2' | 'gpt-image-1.5' | 'gpt-image-1' | 'gpt-image-1-mini'; quality?: 'low' | 'medium' | 'high' | 'auto'; size?: '1024x1024' | '1024x1536' | '1536x1024'; } export declare function generateImage(input: GenerateImageInput): Promise; export declare const __testing: { bestPexelsFile: typeof bestPexelsFile; validatePexelsUrl: typeof validatePexelsUrl; hasMp4Signature: typeof hasMp4Signature; sanitizeExternalText: typeof sanitizeExternalText; }; export {};