import type { ArrayAtom } from '../../core/state/ArrayStateAtom'; import type { PrimitiveAtom } from '../../core/state/PrimitiveAtom'; import type { Transient } from '../../core/utils/StateUtils'; import type { DataOrSelfInitSegmentAtom } from '../segment/SegmentAtom'; import type { SelectionGroupAtom } from '../selection-group/SelectionGroupAtom'; import type { MediaTrackAtom, TrackAtom } from '../track/TrackAtom'; import type { StreamDataStructureContext } from '../Types'; export type SelectionGroupsAtom = ArrayAtom; export type TracksAtom = ArrayAtom; export type PlaybackTimeMismatchTransientPayload = { track: MediaTrackAtom; segment: DataOrSelfInitSegmentAtom; expectedTime: number; actualTime: number; }; export type DurationMismatchTransientPayload = { track: MediaTrackAtom; segment: DataOrSelfInitSegmentAtom; expectedDuration: number; actualDuration: number; }; export declare enum StreamType { Live = "live", VoD = "vod" } type Stream = { type: StreamType; duration: PrimitiveAtom; tracks: ArrayAtom; selectionGroups: SelectionGroupsAtom; onPlaybackTimeMismatch: Transient; onDurationMismatch: Transient; }; declare function setType(stream: Stream, type: StreamType): boolean; export type StreamAtom = ReturnType; export declare const createStreamAtom: (context: StreamDataStructureContext, type: StreamType) => import("../../core/state/Types").StateAtom<{ tracks: ArrayAtom; selectionGroups: ArrayAtom; type: StreamType; duration: import("../../core/state/Types").StateAtom<{ value: number; }, { setValue: (data: { value: number; }, value: number) => boolean; }>; onPlaybackTimeMismatch: import("../../core/state/Types").StateAtom<{ value: PlaybackTimeMismatchTransientPayload | undefined; }, { trigger: (t: { value: PlaybackTimeMismatchTransientPayload | undefined; }, value: PlaybackTimeMismatchTransientPayload) => boolean; }>; onDurationMismatch: import("../../core/state/Types").StateAtom<{ value: DurationMismatchTransientPayload | undefined; }, { trigger: (t: { value: DurationMismatchTransientPayload | undefined; }, value: DurationMismatchTransientPayload) => boolean; }>; }, { setType: typeof setType; }>; export {};