import type { ContextHaving } from '../../../../framework-types/execution-context/Types'; import type { PlaybackConfig } from '../../../bundles/Types'; import type { EmptyObject } from '../../../Types'; import type { Constants, LoadControl } from '../../core/Constants'; import type { ArrayAtom } from '../../core/state/ArrayStateAtom'; import type { DataRangesAtom } from '../../core/state/data-ranges/DataRangesAtom'; import type { PrimitiveAtom } from '../../core/state/PrimitiveAtom'; import type { SelectionGroupAtom } from '../../core/state/selection-group/SelectionGroupAtom'; import type { StreamAtom } from '../../core/state/stream/StreamAtom'; import type { TrackAtom } from '../../core/state/track/TrackAtom'; import type { CoreStateAtoms } from '../../core/Types'; import { CoreExportNames } from '../../core/Types'; import { LogLevel } from '../../core/utils/Logger'; import type { CoreUtils } from '../../core/utils/Types'; import type { ContextWithState } from '../../Types'; import type { BufferConfigAtom } from './BufferConfigAtom'; import type { MediaTypeMapAtom } from './MediaTypeMapAtom'; import type { PlaybackAtom } from './PlaybackAtom'; import type { PlaybackConfigAtom } from './PlaybackConfigAtom'; import type { SourceConfig, SourceConfigAtom } from './SourceConfigAtom'; import type { StartupOptionsAtom } from './StartupOptionsAtom'; import type { VideoElementAtom } from './VideoElementAtom'; export type SourceContext = ContextHaving<{ [CoreExportNames.Utils]: CoreUtils; [CoreExportNames.CoreStateAtoms]: CoreStateAtoms; [CoreExportNames.Constants]: Constants; }, EmptyObject, ContextWithState>; export type ActiveTracksAtom = ArrayAtom; export type ActiveSelectionGroupsAtom = ArrayAtom; export type SourceState = { url: string; stream: StreamAtom; activeTracks: ActiveTracksAtom; activeSelectionGroups: ActiveSelectionGroupsAtom; logLevel: PrimitiveAtom; dataRanges: DataRangesAtom; video: VideoElementAtom; container: PrimitiveAtom; sourceConfig: SourceConfigAtom; config: { buffer: BufferConfigAtom; startup: StartupOptionsAtom; playback: PlaybackConfigAtom; }; loadControl: PrimitiveAtom; playback: PlaybackAtom; activeMediaTypes: MediaTypeMapAtom; }; export type SourceStateAtom = ReturnType; export type CreateSourceStateAtom = typeof createSourceStateAtom; export type SourceOptions = { loadControl: LoadControl; playback: PlaybackConfig; }; export declare const createSourceStateAtom: (context: SourceContext, config: SourceConfig, options: SourceOptions) => import("../../core/state/Types").StateAtom true; }>;