import { LLMConfig } from './llm-config'; import { VideoAspect } from './constant'; interface MaterialInfo { provider: string; url: string; keyword?: string; duration: number; } interface AzureTTSSettings { subscriptionKey: string; serviceRegion: string; language?: string; } interface MaterialSite { apiKey: string; host?: string; port?: number; enableProxy: boolean; } interface InsertClip { keyword?: string; path: string; position: number; } interface SearchParams { searchTerm: string; maxClipDuration?: number; index: number; cacheDir?: string; } export interface ISubMaker { offset: [number, number][]; subs: string[]; createSub(timestamp: [number, number], text: string): void; generateSubs(wordsInCue?: number): string; } interface VideoConfig { taskId?: string; provider?: string; moonshot?: LLMConfig; openai?: LLMConfig; azure?: LLMConfig; gemini?: LLMConfig; g4f?: LLMConfig; gpt4js?: LLMConfig; customAI?: LLMConfig; pexels?: MaterialSite; videoScript?: string; videoTerms?: string | string[]; videoAspect?: VideoAspect; videoClipDuration?: number; termsNum?: number; output: string; cacheDir?: string; voiceName: string; voiceVolume?: number; bgMusic?: string; bgMusicVolume?: number; azureTTSSettings?: AzureTTSSettings; lineBreakForce?: boolean; addPunctuation?: boolean; isChinese?: boolean; perPage?: number; fontsDir?: string; fontSize?: number; fontName?: string; textColor?: string; strokeColor?: string; strokeWidth?: number; textBottom?: number; subtitleMaxWidth?: number; debug?: boolean; lastTime?: number; removeCache?: boolean; ttsProxy?: string; materialAspectRatio?: boolean; getMaterial?: (param: SearchParams) => Promise; getTTS?: (text: string, voiceName: string, voiceFile: string) => Promise>; preProcessMaterialVideo?: (queryUrl: string, searchData: Record, pexelsApiKey: MaterialSite) => Promise; postProcessMaterialVideos?: (materialVideos: MaterialInfo[]) => MaterialInfo[]; insertClips?: InsertClip[]; [key: string]: any; } declare const mergeConfig: (config: VideoConfig) => VideoConfig; declare const createOutputConfig: (config: VideoConfig) => VideoConfig; export { VideoConfig, LLMConfig, MaterialInfo, AzureTTSSettings, MaterialSite, mergeConfig, createOutputConfig, };