import type { EmptyObject } from '../../../../framework-types/BaseTypes';
import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { Constants } from '../../core/Constants';
import type { StateAtom } from '../../core/state/Types';
import type { CoreStateAtoms } from '../../core/Types';
import { CoreExportNames } from '../../core/Types';
import type { CoreUtils } from '../../core/utils/Types';
import type { ActiveSelectionGroupsAtom, ActiveTracksAtom } from '../../source/atoms/SourceStateAtom';
import { StreamDataStructureStream } from '../../stream-data-structure/stream/Exports';
import type { StreamAtom } from '../../stream-data-structure/stream/StreamAtom';
import type { ContextWithState } from '../../Types';
import type { BufferConfigAtom } from './BufferConfigAtom';
import type { DataRangesAtom } from './DataRangesAtom';
import type { MediaTypeMapAtom } from './MediaTypeMapAtom';
type StreamingState = {
    bufferConfig: BufferConfigAtom;
    activeMediaTypes: MediaTypeMapAtom;
    dataRanges: DataRangesAtom;
    stream: StreamAtom;
    activeTracks: ActiveTracksAtom;
    activeSelectionGroups: ActiveSelectionGroupsAtom;
};
export type StreamingStateAtom = StateAtom<StreamingState, EmptyObject>;
type ExtendedContext = ContextHaving<{
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.Constants]: Constants;
    [CoreExportNames.Utils]: CoreUtils;
} & StreamDataStructureStream, EmptyObject, ContextWithState>;
export declare function createStreamingStateAtom(context: ExtendedContext): StreamingStateAtom;
export {};
