import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { StateMachineAtom } from '../../core/state/StateMachineAtom';
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 { TargetPlaybackState, TargetPlaybackStateAtom } from '../play-pause/TargetPlaybackStateAtom';
import type { PlayPauseExportNames } from '../play-pause/Types';
import type { VideoElementStateExportNames } from '../video-element-state/Types';
import type { VideoElementStateAtom } from '../video-element-state/VideoElementStateAtom';
export declare enum PlaybackStatePackageExportNames {
    PlaybackState = "playback-state",
    PlaybackStateMachine = "playback-state-machine"
}
export declare enum PlaybackState {
    Initial = "initial",
    Ready = "ready",
    Paused = "paused",
    Play = "play",
    Playing = "playing",
    Seeking = "seeking",
    Stalled = "stalled",
    Ended = "ended",
    Detached = "detached"
}
export type PlaybackStatePackageDependencies = {
    [CoreExportNames.Utils]: CoreUtils;
    [CoreExportNames.CoreEffects]: CoreEffects;
    [SourceExportNames.SourceState]: SourceStateAtom;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [PlayPauseExportNames.TargetPlaybackState]: typeof TargetPlaybackState;
    [PlayPauseExportNames.TargetPlaybackStateAtom]: TargetPlaybackStateAtom;
    [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
};
export type PlaybackStatePackageExports = {
    [PlaybackStatePackageExportNames.PlaybackState]: typeof PlaybackState;
    [PlaybackStatePackageExportNames.PlaybackStateMachine]: PlaybackStateMachineAtom;
};
export type PlaybackStatePackageContext = ContextHaving<PlaybackStatePackageDependencies, PlaybackStatePackageExports, ContextWithState>;
export type PlaybackStateMachineAtom = StateMachineAtom<PlaybackState, PlaybackStatePackageContext>;
