import { LogLevel } from '../../../../framework-types/effects/LoggerEffect'; 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 { PrimitiveAtom } from '../../core/state/PrimitiveAtom'; import type { CoreStateAtoms } from '../../core/Types'; import { CoreExportNames } from '../../core/Types'; import type { CoreUtils } from '../../core/utils/Types'; import type { SelectionGroupAtom } from '../../stream-data-structure/selection-group/SelectionGroupAtom'; import type { TrackAtom } from '../../stream-data-structure/track/TrackAtom'; import type { ContextWithState } from '../../Types'; 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 ActiveTracksAtom = ArrayAtom; export type ActiveSelectionGroupsAtom = ArrayAtom; export type SourceState = { logLevel: PrimitiveAtom; video: VideoElementAtom; container: PrimitiveAtom; sourceConfig: SourceConfigAtom; startupConfig: StartupOptionsAtom; playbackConfig: PlaybackConfigAtom; loadControl: PrimitiveAtom; playback: PlaybackAtom; }; export type SourceContext = ContextHaving<{ [CoreExportNames.Utils]: CoreUtils; [CoreExportNames.CoreStateAtoms]: CoreStateAtoms; [CoreExportNames.Constants]: Constants; }, EmptyObject, ContextWithState>; 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; }>;