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 { HlsTechStateAtom } from './atoms/HlsTechStateAtom';
export declare const HlsTechState = "hls-tech-state";
export type HlsTechState = {
    [HlsTechState]: HlsTechStateAtom;
};
export interface HlsTechStateData {
    resource: Resource;
}
export type HlsManifestTechnologyExports = EmptyObject;
export type HlsManifestTechnologyDependencies = {
    [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
    [CoreExportNames.Constants]: Constants;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.Utils]: CoreUtils;
    [CreateStreamingStateAtom]: typeof createStreamingStateAtom;
} & StreamDataStructureStream;
export type HlsManifestTechnologyContext = ContextHaving<HlsManifestTechnologyDependencies, HlsManifestTechnologyExports, ContextWithState>;
export type HlsManifestPlaybackTechnology = ManifestTechnologyEntry<{
    [StreamingState]: StreamingStateAtom;
} & HlsTechState>;
