import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { AdaptationExportNames } from '../../adaptation/Types';
import type { Constants } from '../../core/Constants';
import type { MetricsAtom } from '../../core/metrics/MetricsAtom';
import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../core/Types';
import type { CoreUtils } from '../../core/utils/Types';
import type { NetworkTask } from '../../network/NetworkTask';
import type { NetworkExportNames } from '../../network/Types';
import type { TargetPlaybackState, TargetPlaybackStateAtom } from '../../playback/play-pause/TargetPlaybackStateAtom';
import type { PlayPauseExportNames } from '../../playback/play-pause/Types';
import type { SeekRestrictionAtom } from '../../playback/video-element-state/SeekRestrictionAtom';
import type { VideoElementStateExportNames } from '../../playback/video-element-state/Types';
import type { VideoElementStateAtom } from '../../playback/video-element-state/VideoElementStateAtom';
import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
import type { createSourceReference } from '../../source/SourceReference';
import type { SourceExportNames, SourceReferences } from '../../source/Types';
import type { SourceRemovedError } from '../../sources-api/SourceRemovedError';
import type { SourcesApiExportNames } from '../../sources-api/Types';
import type { ContextWithState } from '../../Types';
import type { createBaseAdAtom } from '../base/BaseAdAtom';
import type { createBaseAdBreakAtom } from '../base/BaseAdBreakAtom';
import type { AdQuartile, AdSourceAdExports, AdType, AdvertisingBaseExportNames, BaseAdBreakState, BaseAdState, ContentSourceAdExports } from '../base/Types';
export type AdvertisingBitmovinPackageDependencies = {
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.Utils]: CoreUtils;
    [CoreExportNames.Constants]: Constants;
    [SourceExportNames.SourceState]: SourceStateAtom;
    [SourceExportNames.CreateSourceReference]: typeof createSourceReference;
    [SourceExportNames.SourceReferences]: SourceReferences;
    [SourcesApiExportNames.SourceRemovedError]: typeof SourceRemovedError;
    [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
    [VideoElementStateExportNames.SeekRestriction]: SeekRestrictionAtom;
    [NetworkExportNames.NetworkTask]: typeof NetworkTask;
    [AdaptationExportNames.Metrics]: MetricsAtom;
    [PlayPauseExportNames.TargetPlaybackState]: typeof TargetPlaybackState;
    [PlayPauseExportNames.TargetPlaybackStateAtom]: TargetPlaybackStateAtom;
    [AdvertisingBaseExportNames.AdType]: typeof AdType;
    [AdvertisingBaseExportNames.AdQuartile]: typeof AdQuartile;
    [AdvertisingBaseExportNames.BaseAdBreakState]: typeof BaseAdBreakState;
    [AdvertisingBaseExportNames.BaseAdState]: typeof BaseAdState;
    [AdvertisingBaseExportNames.CreateBaseAdBreak]: typeof createBaseAdBreakAtom;
    [AdvertisingBaseExportNames.CreateBaseAd]: typeof createBaseAdAtom;
};
export type AdvertisingBitmovinPackageExports = ContentSourceAdExports & AdSourceAdExports;
export type AdvertisingBitmovinContext = ContextHaving<AdvertisingBitmovinPackageDependencies, AdvertisingBitmovinPackageExports, ContextWithState>;
