/** * Clock - Audio/Video synchronization clock * Uses audio as the master clock when available for smooth 60Hz playback */ export interface AudioClockProvider { getAudioClock(): number; hasHealthyBuffer(): boolean; isAudioPlaying(): boolean; } export declare class Clock { private baseTime; private pausedTime; private isRunning; private playbackRate; private audioProvider; private syncedToAudio; private lastAudioTime; private duration; /** * Set audio clock provider for master A/V sync * Pass null to disable audio sync and use wall clock only */ setAudioProvider(provider: AudioClockProvider | null): void; /** * Set media duration for clock clamping */ setDuration(duration: number): void; /** * Start/resume the clock */ start(): void; /** * Pause the clock */ pause(): void; /** * Seek to a specific time */ seek(time: number): void; /** * Get current playback time using wall clock with loose A/V sync * Uses wall clock for smooth timing, with periodic drift correction from audio * This ensures smooth video playback while maintaining A/V sync */ getTime(): number; /** * Get time for video frame presentation * Returns audio time if available, otherwise wall clock */ getVideoSyncTime(): number; /** * Set playback rate */ setPlaybackRate(rate: number): void; /** * Get playback rate */ getPlaybackRate(): number; /** * Check if clock is running */ isPlaying(): boolean; /** * Check if synchronized to audio */ isSyncedToAudio(): boolean; /** * Reset clock */ reset(): void; } //# sourceMappingURL=Clock.d.ts.map