import type { AudioClip } from "./AudioClip"; import type { AudioWaveformData } from "./AudioWaveform"; export type AudioTimelineTrackRole = "dialogue" | "music" | "sfx" | "ambient"; export interface AudioTimelineEnvelopePoint { readonly time: number; readonly value: number; } export interface AudioTimelineClipOptions { readonly id: string; readonly clip?: AudioClip; readonly assetId?: string; readonly sourceUrl?: string; readonly waveform?: AudioWaveformData; readonly startTime: number; readonly duration?: number; readonly trimStart?: number; readonly trimEnd?: number; readonly volume?: number; readonly muted?: boolean; readonly loop?: boolean; readonly busName?: string; readonly envelope?: readonly AudioTimelineEnvelopePoint[]; } export interface AudioTimelineClip { readonly id: string; readonly clip?: AudioClip; readonly assetId?: string; readonly sourceUrl?: string; readonly waveform?: AudioWaveformData; readonly startTime: number; readonly duration: number; readonly trimStart: number; readonly trimEnd: number; readonly sourceDuration: number; readonly volume: number; readonly muted: boolean; readonly loop: boolean; readonly busName: string; readonly envelope: readonly AudioTimelineEnvelopePoint[]; } export interface AudioTimelineTrackOptions { readonly id: string; readonly name?: string; readonly role: AudioTimelineTrackRole; readonly busName?: string; readonly volume?: number; readonly muted?: boolean; readonly solo?: boolean; readonly clips?: readonly AudioTimelineClipOptions[]; } export interface AudioTimelineSample { readonly trackId: string; readonly clipId: string; readonly role: AudioTimelineTrackRole; readonly busName: string; readonly timelineTime: number; readonly localTime: number; readonly sourceTime: number; readonly volume: number; readonly muted: boolean; readonly clip: AudioTimelineClip; } export interface AudioTimelineBusMix { readonly busName: string; readonly role: AudioTimelineTrackRole | "master"; readonly volume: number; readonly muted: boolean; readonly solo: boolean; readonly ducked: boolean; } export interface AudioTimelineMixSnapshot { readonly time: number; readonly activeSamples: readonly AudioTimelineSample[]; readonly buses: readonly AudioTimelineBusMix[]; readonly dialogueActive: boolean; readonly duckingApplied: boolean; } export interface AudioTimelineMixOptions { readonly masterVolume?: number; readonly duckMusicDuringDialogue?: boolean; readonly duckingRatio?: number; readonly busVolumes?: Readonly>; readonly mutedBuses?: readonly string[]; readonly soloBuses?: readonly string[]; } export interface AudioCaptionCue { readonly id: string; readonly startTime: number; readonly endTime: number; readonly text?: string; readonly audioClipId?: string; } export interface AudioCaptionSyncIssue { readonly code: string; readonly message: string; readonly cueId: string; readonly clipId?: string; readonly deltaFrames?: number; } export interface AudioCaptionSyncReport { readonly ok: boolean; readonly frameRate: number; readonly toleranceFrames: number; readonly checkedCueCount: number; readonly issues: readonly AudioCaptionSyncIssue[]; } export declare class AudioTimelineTrack { readonly id: string; readonly name: string; readonly role: AudioTimelineTrackRole; readonly busName: string; volume: number; muted: boolean; solo: boolean; private clipsRef; constructor(options: AudioTimelineTrackOptions); get clips(): readonly AudioTimelineClip[]; addClip(options: AudioTimelineClipOptions): AudioTimelineClip; getClip(id: string): AudioTimelineClip; removeClip(id: string): AudioTimelineClip; moveClip(id: string, startTime: number): AudioTimelineClip; trimClip(id: string, trimStart: number, trimEnd: number): AudioTimelineClip; splitClip(id: string, splitTime: number, rightId?: string): readonly [AudioTimelineClip, AudioTimelineClip]; activeClipsAt(time: number): readonly AudioTimelineClip[]; sampleAt(time: number): readonly AudioTimelineSample[]; private replaceClip; private sortClips; } export declare function defaultAudioTimelineBusForRole(role: AudioTimelineTrackRole): string; export declare function createAudioTimelineMixSnapshot(tracks: readonly AudioTimelineTrack[], time: number, options?: AudioTimelineMixOptions): AudioTimelineMixSnapshot; export declare function validateAudioCaptionSync(tracks: readonly AudioTimelineTrack[], captions: readonly AudioCaptionCue[], options?: { readonly frameRate?: number; readonly toleranceFrames?: number; }): AudioCaptionSyncReport; //# sourceMappingURL=AudioTimelineTrack.d.ts.map