import { TimelineMediaPlayResult } from "./mediaPlayResult.mjs"; import { MediaSynchronizationQueue } from "./mediaSynchronizationQueue.mjs"; import { TimecodeFrameRate } from "@techsquidtv/canvas-timeline-utils"; import { ActiveLayerSelector, PlaybackOptions, TimelineCommandResult, TimelineEngine, TimelineMediaError, TimelineMediaSyncAdapter } from "@techsquidtv/canvas-timeline-core"; //#region src/hooks/playback/internal/mediaClockOwnership.d.ts interface PendingMediaPlaybackStart { generation: number; adapter: TimelineMediaSyncAdapter; promise: Promise; } interface MediaClockOwner { generation: number; adapter: TimelineMediaSyncAdapter; identity: object | undefined; } declare class MediaClockOwnership { private barrier; private generation; owner: MediaClockOwner | null; pending: PendingMediaPlaybackStart | null; updateAdapter(adapter: TimelineMediaSyncAdapter, sameIdentity: boolean): void; isCurrentStart(generation: number): boolean; stopOwnedClock(generation?: number): void; cancelPendingStart(invalidateOperations: () => void): boolean; queueStart(adapter: TimelineMediaSyncAdapter, start: (generation: number) => Promise): Promise; clearOwnerWhenIdle(playing: boolean): void; clearOwner(): void; } interface StartMediaClockPlaybackOptions { engine: TimelineEngine; generation: number; frameRate: TimecodeFrameRate | undefined; layers: Record; playbackOptions: Omit | undefined; ownership: MediaClockOwnership; operationQueue: MediaSynchronizationQueue; getAdapter: () => TimelineMediaSyncAdapter; getAdapterIdentity: () => object | undefined; isReady: () => boolean; playTimeline: () => Promise; onError: ((error: TimelineMediaError) => void) | undefined; } declare function startMediaClockPlayback({ engine, generation, frameRate, layers, playbackOptions, ownership, operationQueue, getAdapter, getAdapterIdentity, isReady, playTimeline, onError }: StartMediaClockPlaybackOptions): Promise; //#endregion export { MediaClockOwner, MediaClockOwnership, PendingMediaPlaybackStart, startMediaClockPlayback }; //# sourceMappingURL=mediaClockOwnership.d.mts.map