import type { ContextHaving, ContextUsing } from '../../../framework-types/execution-context/Types'; import type { BundleExportNames, PlayerConfig } from '../../bundles/Types'; import type { Constants } from '../core/Constants'; import type { MetricsAtom } from '../core/metrics/MetricsAtom'; import type { StoreEffectFactory } from '../core/state/StoreEffectFactory'; import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../core/Types'; import type { MediaStatePackageExports } from '../media-state/Types'; import type { SourceStateAtom } from '../source/atoms/SourceStateAtom'; import type { SourceExportNames } from '../source/Types'; import type { StreamDataStructureSegments } from '../stream-data-structure/segment/Exports'; import type { StreamDataStructureTracks } from '../stream-data-structure/track/Exports'; import type { MediaTrackAtom } from '../stream-data-structure/track/TrackAtom'; import type { StreamingState } from '../streaming/Types'; import type { ContextWithState } from '../Types'; import type { AdaptationStateAtom } from './AdaptationStateAtom'; import type { AdaptationTask } from './AdaptationTask'; import type { StartupQuality } from './StartupQuality'; import type { QualityFunction, WishConfig } from './WishConfigAtom'; import type { WishDataAtom } from './WishDataAtom'; export type { AdaptationAlgorithm } from './AdaptationAlgorithm'; export type { StartupQuality } from './StartupQuality'; export type AdaptationInitialConfig = Partial & { startupQuality?: StartupQuality; }; export type AdaptationApi = { adaptation: { setXi(xi: number): void; setDelta(delta: number): void; setQualityFunction(qualityFunction: QualityFunction): void; setStartupQuality(startupQuality: StartupQuality | undefined): void; }; }; export declare enum AdaptationExportNames { ShouldCancel = "should-cancel", Select = "select", Metrics = "metrics", AdaptationTask = "adaptation-task", AdaptationStateAtom = "adaptation-state-atom" } export type AdaptationExports = { [AdaptationExportNames.ShouldCancel]: () => boolean; [AdaptationExportNames.Select]: (tracks: readonly MediaTrackAtom[]) => MediaTrackAtom; [AdaptationExportNames.Metrics]: MetricsAtom; [AdaptationExportNames.AdaptationTask]: typeof AdaptationTask; [AdaptationExportNames.AdaptationStateAtom]: AdaptationStateAtom; }; export type AdaptationDependencies = { [CoreExportNames.CoreEffects]: CoreEffects; [CoreExportNames.Constants]: Constants; [SourceExportNames.SourceState]: SourceStateAtom; [CoreExportNames.CoreStateAtoms]: CoreStateAtoms; [BundleExportNames.PlayerConfig]: PlayerConfig; } & StreamDataStructureSegments & StreamDataStructureTracks & StreamingState & MediaStatePackageExports; export type AdaptationPackageContext = ContextUsing<[ StoreEffectFactory<'adaptationData', WishDataAtom>, StoreEffectFactory<'adaptationState', AdaptationStateAtom> ], ContextHaving>;