import type { EmptyObject } from '../../../../framework-types/BaseTypes';
import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { ArrayAtom } from '../../core/state/ArrayStateAtom';
import type { StateAtom } from '../../core/state/Types';
import { CoreExportNames } from '../../core/Types';
import type { CoreUtils } from '../../core/utils/Types';
import type { VideoElementAtom } from '../../source/atoms/VideoElementAtom';
import type { TrackAtom } from '../../stream-data-structure/track/TrackAtom';
import type { ContextWithState } from '../../Types';
import type { TimeRange } from './Types';
type SeekableRangerProvider = {
    range: TimeRange | undefined;
};
type Context = ContextHaving<{
    [CoreExportNames.Utils]: CoreUtils;
}, EmptyObject, ContextWithState>;
export type SeekableRangeProviderAtom = StateAtom<SeekableRangerProvider>;
export declare function createSeekableRangeProvider(context: Context, video: VideoElementAtom): SeekableRangeProviderAtom;
export declare function createSeekableRangeProvider(context: Context, tracks: ArrayAtom<TrackAtom>): SeekableRangeProviderAtom;
export {};
