import type { EmptyObject } from '../../../framework-types/BaseTypes';
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 { MediaInfo } from './MediaInfoAtoms';
import type { MediaState } from './MediaState';
import type { MediaStateAtom } from './MediaStateAtom';
import type { MediaStateTransitionType } from './MediaStateTransitionType';
import type { SeekRestrictionAtom } from './SeekRestrictionAtom';
export type { MediaState } from './MediaState';
export type { MediaStateTransitionType } from './MediaStateTransitionType';
export type MediaStateTransition = {
    type: MediaStateTransitionType;
    paused: boolean;
    ended: boolean;
    seeking: boolean;
    errored: boolean;
    currentTime: number;
    duration: number | undefined;
};
export declare enum MediaStateExportNames {
    MediaStateAtom = "media-state-atom",
    MediaState = "media-state",
    MediaInfo = "media-info",
    MediaStateTransitionType = "media-state-transition-type",
    SeekRestriction = "seek-restriction"
}
export type MediaStatePackageDependencies = {
    [SourceExportNames.SourceState]: SourceStateAtom;
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.Utils]: CoreUtils;
};
export type MediaStatePackageExports = {
    [MediaStateExportNames.MediaStateAtom]: MediaStateAtom;
    [MediaStateExportNames.MediaState]: typeof MediaState;
    [MediaStateExportNames.MediaInfo]: MediaInfo;
    [MediaStateExportNames.SeekRestriction]: SeekRestrictionAtom;
    [MediaStateExportNames.MediaStateTransitionType]: typeof MediaStateTransitionType;
};
export type MediaStatePackageContext = ContextHaving<MediaStatePackageDependencies, MediaStatePackageExports, ContextWithState>;
export type MediaStatePackageApi = EmptyObject;
export type { MediaInfo } from './MediaInfoAtoms';
export type { MediaStateAtom } from './MediaStateAtom';
export type { SeekRestrictionAtom } from './SeekRestrictionAtom';
