import type { ApiManager } from '../../../../framework-types/api-manager/ApiManager';
import type { EmptyObject } from '../../../../framework-types/BaseTypes';
import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { CoreEffects, CoreExportNames } from '../../core/Types';
import type { TargetPlaybackState, TargetPlaybackStateAtom } from '../../playback/play-pause/TargetPlaybackStateAtom';
import type { PlayPauseExportNames } from '../../playback/play-pause/Types';
import type { VideoElementStateExportNames } from '../../playback/video-element-state/Types';
import type { VideoElementStateAtom } from '../../playback/video-element-state/VideoElementStateAtom';
import type { SourcesApiExportNames } from '../../sources-api/Types';
import type { ContextWithState } from '../../Types';
export type PlayPauseApi = {
    play(): Promise<void>;
    pause(): void;
};
export type PlayPauseApiPackageDependencies = {
    [CoreExportNames.CoreEffects]: CoreEffects;
    [PlayPauseExportNames.TargetPlaybackState]: typeof TargetPlaybackState;
    [PlayPauseExportNames.TargetPlaybackStateAtom]: TargetPlaybackStateAtom;
    [SourcesApiExportNames.SourceApiManager]: ApiManager<PlayPauseApi>;
    [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
};
export type PlayPauseApiPackageExports = EmptyObject;
export type PlayPauseApiPackageContext = ContextHaving<PlayPauseApiPackageDependencies, PlayPauseApiPackageExports, ContextWithState>;
