import { ImportedTrack, EditableTrack, ImportedMediaTrack, Shrink_mode as ShrinkMode, Extend_mode as ExtendMode } from './template_mode'; import { Timerange } from './time_util'; import { VideoMaterial as VideoMaterial, AudioMaterial as AudioMaterial } from './local_materials'; import { Speed, Clip_settings as ClipSettings } from './segment'; import { AudioSegment as AudioSegment, AudioFade as AudioFade, AudioEffect as AudioEffect } from './audio_segment'; import { Video_segment as VideoSegment, Sticker_segment as StickerSegment, SegmentAnimations as SegmentAnimations, Video_effect as VideoEffect, Transition, Filter, BackgroundFilling } from './video_segment'; import { Text_segment as TextSegment, Text_style as TextStyle, TextBubble } from './text_segment'; import { track_type, Track } from './track'; import { Video_scene_effect_type as VideoSceneEffectType, Video_character_effect_type as VideoCharacterEffectType, Filter_type as FilterType } from '../data'; declare class ScriptMaterial { audios: AudioMaterial[]; videos: VideoMaterial[]; stickers: Record[]; texts: Record[]; audioEffects: AudioEffect[]; audioFades: AudioFade[]; animations: SegmentAnimations[]; videoEffects: VideoEffect[]; speeds: Speed[]; masks: Record[]; transitions: Transition[]; filters: (Filter | TextBubble)[]; canvases: BackgroundFilling[]; constructor(); contains(item: VideoMaterial | AudioMaterial | AudioFade | AudioEffect | SegmentAnimations | VideoEffect | Transition | Filter): boolean; export_json(): Record; } export declare class ScriptFile { savePath: string | null; content: Record; width: number; height: number; fps: number; duration: number; materials: ScriptMaterial; tracks: Record; importedMaterials: Record; importedTracks: ImportedTrack[]; TEMPLATE_FILE: string; constructor(width: number, height: number, fps?: number); static loadTemplate(jsonPath: string): ScriptFile; addMaterial(material: VideoMaterial | AudioMaterial): ScriptFile; addTrack(track_type: track_type | any, trackName?: string, { mute, relativeIndex, absoluteIndex, track_id }?: { mute?: boolean; relativeIndex?: number; absoluteIndex?: any; track_id?: any; }): ScriptFile; _getTrack(segmentType: any, trackName: string | null): any; getTrack(segmentType: any, trackName: string | null): boolean; add_segment(segment: VideoSegment | StickerSegment | AudioSegment | TextSegment, trackName?: string | null): ScriptFile; addEffect(effect: VideoSceneEffectType | VideoCharacterEffectType, tRange: Timerange, trackName?: string | null, { params }?: { params?: number[] | null; }): ScriptFile; addFilter(filterMeta: FilterType, tRange: Timerange, trackName?: string | null, intensity?: number): ScriptFile; importSrt(srtPath: string, trackName: string, { timeOffset, styleReference, textStyle, clipSettings }?: { timeOffset?: string | number; styleReference?: TextSegment | null; textStyle?: TextStyle; clipSettings?: ClipSettings | null; }): Promise; getImportedTrack(track_type: any, name?: string | null, index?: number | null): EditableTrack; getImportedTracks(track_type: any, name?: string | null, index?: number | null): any; importTrack(sourceFile: ScriptFile, track: EditableTrack, { offset, newName, relativeIndex }?: { offset?: string | number; newName?: string | null; relativeIndex?: number | null; }): ScriptFile; replaceMaterialByName(materialName: string, material: VideoMaterial | AudioMaterial, replaceCrop?: boolean): ScriptFile; replaceMaterialBySeg(track: ImportedMediaTrack, segmentIndex: number, material: VideoMaterial | AudioMaterial, sourceTimerange?: Timerange | null, { handleShrink, handleExtend: extendModes }?: { handleShrink?: ShrinkMode; handleExtend?: ExtendMode | ExtendMode[]; }): ScriptFile; replaceText(track: EditableTrack, segmentIndex: number, text: string | string[], recalcStyle?: boolean): ScriptFile; inspectMaterial(): void; dumps(): string; dump(file_path: string, options?: any): Promise; save(): Promise; } export {};