import type { ApiManager } from '../../../../framework-types/api-manager/ApiManager'; import type { ContextHaving } from '../../../../framework-types/execution-context/Types'; import type { ArrayAtom } from '../../core/state/ArrayStateAtom'; import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../core/Types'; import type { CoreUtils } from '../../core/utils/Types'; import type { MediaInfo } from '../../media-state/MediaInfoAtoms'; import type { MediaStateExportNames } from '../../media-state/Types'; import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom'; import type { SourceExportNames } from '../../source/Types'; import type { SourcesApiExportNames } from '../../sources-api/Types'; import type { ContextWithState } from '../../Types'; import type { SeekableRangeProviderAtom } from './SeekableRangeProviderAtom'; export type TimeRange = { start: number; end: number; }; export type TimeApi = { currentTime: number; readonly duration: number; readonly seekableRange: TimeRange; playbackRate: number; }; export type TimeApiPackageDependencies = { [CoreExportNames.CoreStateAtoms]: CoreStateAtoms; [CoreExportNames.CoreEffects]: CoreEffects; [CoreExportNames.Utils]: CoreUtils; [MediaStateExportNames.MediaInfo]: MediaInfo; [SourceExportNames.SourceState]: SourceStateAtom; [SourcesApiExportNames.SourceApiManager]: ApiManager; }; export declare const SeekableRangeProviders = "seekable-range-providers"; export type SeekableRangeProviders = { [SeekableRangeProviders]: ArrayAtom; }; export type TimeApiPackageContext = ContextHaving;