import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
import type { ContextHaving } from '../../../../../framework-types/execution-context/Types';
import type { Constants } from '../../../core/Constants';
import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
import type { CoreUtils } from '../../../core/utils/Types';
import type { ManifestTechnologyEntry, PlaybackTechnologyComponent } from '../../../playback-technology/Types';
import type { Resource } from '../../../source/atoms/SourceConfigAtom';
import type { StreamDataStructureStream } from '../../../stream-data-structure/stream/Exports';
import type { createStreamingStateAtom, StreamingStateAtom } from '../../../streaming/atoms/StreamingStateAtom';
import type { CreateStreamingStateAtom, StreamingState } from '../../../streaming/Types';
import type { ContextWithState } from '../../../Types';
import type { DashTechStateAtom } from './atoms/DashTechStateAtom';
export declare const DashTechState = "dash-tech-state";
export type DashTechState = {
    [DashTechState]: DashTechStateAtom;
};
export interface DashTechStateData {
    resource: Resource;
}
export type DashManifestTechnologyExports = EmptyObject;
export type DashManifestTechnologyDependencies = {
    [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
    [CoreExportNames.Constants]: Constants;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.Utils]: CoreUtils;
    [CreateStreamingStateAtom]: typeof createStreamingStateAtom;
} & StreamDataStructureStream;
export type DashManifestTechnologyContext = ContextHaving<DashManifestTechnologyDependencies, DashManifestTechnologyExports, ContextWithState>;
export type DashManifestPlaybackTechnology = ManifestTechnologyEntry<{
    [StreamingState]: StreamingStateAtom;
} & DashTechState>;
