import type { RuntimeDeterministicAdapter, RuntimeTimelineLike } from "./types"; import type { RuntimeMediaClip } from "./media"; import type { TransportClock } from "./clock"; export type RuntimeState = { capturedTimeline: RuntimeTimelineLike | null; isPlaying: boolean; currentTime: number; deterministicAdapters: RuntimeDeterministicAdapter[]; canonicalFps: number; bridgeMuted: boolean; bridgeVolume: number; /** * Internal mute of audible media output, owned by the audio-ownership * protocol between the parent (``) and this runtime. * Independent of `bridgeMuted` (the user's mute preference). When the * parent takes over audible playback via parent-frame proxies, it sets * this to `true` so the runtime keeps driving timed media for frame * accuracy but produces no audio of its own. */ mediaOutputMuted: boolean; /** * Disable runtime ownership of native media elements. Slideshow presenter * mode keeps the slide timeline paused while users interact with embedded * media, so the runtime must not auto-play, auto-pause, seek, or volume-sync * those native elements on every transport tick. */ nativeMediaSyncDisabled: boolean; /** * Disable the runtime's WebAudio replacement for native