import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../core/Types';
import type { CoreUtils } from '../../core/utils/Types';
import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
import type { SourceExportNames } from '../../source/Types';
import type { ContextWithState } from '../../Types';
import type { SeekRestrictionAtom } from './SeekRestrictionAtom';
import type { VideoElementStateAtom } from './VideoElementStateAtom';
export declare enum VideoElementStateExportNames {
    VideoElementState = "video-element-state",
    MediaElementReadyState = "media-element-ready-state",
    SeekRestriction = "seek-restriction"
}
export declare enum MediaElementReadyState {
    HaveNothing,
    HaveMetadata,
    HaveCurrentData,
    HaveFutureData,
    HaveEnoughData
}
export type VideoElementStatePackageDependencies = {
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.Utils]: CoreUtils;
    [SourceExportNames.SourceState]: SourceStateAtom;
};
export type VideoElementStatePackageExports = {
    [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
    [VideoElementStateExportNames.MediaElementReadyState]: typeof MediaElementReadyState;
    [VideoElementStateExportNames.SeekRestriction]: SeekRestrictionAtom;
};
export type VideoElementStatePackageContext = ContextHaving<VideoElementStatePackageDependencies, VideoElementStatePackageExports, ContextWithState>;
