import type { ContextHaving, ContextUsing } from '../../../framework-types/execution-context/Types'; import type { BundleExportNames } from '../../bundles/Types'; import type { MetricsAtom } from '../core/metrics/MetricsAtom'; import type { StoreEffectFactory } from '../core/state/StoreEffectFactory'; import type { MediaTrackAtom } from '../core/state/track/TrackAtom'; import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../core/Types'; import type { Logger } from '../core/utils/Logger'; import type { SourceStateAtom } from '../source/atoms/SourceStateAtom'; import type { SourceExportNames } from '../source/Types'; import type { ContextWithState } from '../Types'; import type { AdaptationStateAtom } from './AdaptationStateAtom'; import type { AdaptationTask } from './AdaptationTask'; import type { WishConfigAtom } from './WishConfigAtom'; import type { WishDataAtom } from './WishDataAtom'; export declare enum AdaptationExportNames { ShouldCancel = "should-cancel", Select = "select", Metrics = "metrics", AdaptationTask = "adaptation-task" } export type AdaptationExports = { [AdaptationExportNames.ShouldCancel]: () => boolean; [AdaptationExportNames.Select]: (tracks: readonly MediaTrackAtom[]) => MediaTrackAtom; [AdaptationExportNames.Metrics]: MetricsAtom; [AdaptationExportNames.AdaptationTask]: typeof AdaptationTask; }; export type AdaptationDependencies = { [BundleExportNames.Logger]: Logger; [CoreExportNames.CoreEffects]: CoreEffects; [SourceExportNames.SourceState]: SourceStateAtom; [CoreExportNames.CoreStateAtoms]: CoreStateAtoms; }; export type AdaptationPackageContext = ContextUsing<[ StoreEffectFactory<'adaptationData', WishDataAtom>, StoreEffectFactory<'wishConfig', WishConfigAtom>, StoreEffectFactory<'adaptationState', AdaptationStateAtom> ], ContextHaving>;