import type { ContextHaving } from '../../../../../framework-types/execution-context/Types';
import type { NamedTask, Task } from '../../../../../framework-types/task/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 { SourceStateAtom } from '../../../source/atoms/SourceStateAtom';
import type { SourceExportNames } from '../../../source/Types';
import type { StreamDataStructurePackageExports } from '../../../stream-data-structure/Types';
import type { StreamingState } from '../../../streaming/Types';
import type { ContextWithState } from '../../../Types';
import type { DashParsingTask } from '../parsing/DashParsingTask';
import type { DashParsingExportNames } from '../parsing/Types';
import type { DashTechState } from '../technology/Types';
import type { DashPlaylistTranslatorTask } from '../translation/manifests/DashPlaylistTranslatorTask';
import type { DashTranslationExportNames } from '../translation/Types';
export declare enum DashPackageExportNames {
    DashManifestLoadTask = "dash-manifest-load-task"
}
export type DashDependencies = {
    [CoreExportNames.Utils]: CoreUtils;
    [CoreExportNames.Constants]: Constants;
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [SourceExportNames.SourceState]: SourceStateAtom;
    [AdaptationExportNames.Metrics]: MetricsAtom;
    [NetworkExportNames.NetworkTask]: typeof NetworkTask;
    [DashParsingExportNames.ParsingTask]: typeof DashParsingTask;
    [DashTranslationExportNames.DashTranslator]: typeof DashPlaylistTranslatorTask;
} & StreamDataStructurePackageExports & StreamingState & DashTechState;
export type ManifestLoadTaskType = NamedTask<Task<DashPackageContext, SourceStateAtom, void>>;
export type DashExports = {
    [DashPackageExportNames.DashManifestLoadTask]: ManifestLoadTaskType;
};
export type DashPackageContext = ContextHaving<DashDependencies, DashExports, ContextWithState>;
