import type { ApiManager } from '../../../../framework-types/api-manager/ApiManager';
import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { CoreEffects, CoreExportNames } from '../../core/Types';
import type { extendEventBusTypes } from '../../event-bus/EventBus';
import type { EventBus, EventBusExportNames } from '../../event-bus/Types';
import type { PlaybackState, PlaybackStateMachineAtom, PlaybackStatePackageExportNames } from '../../playback/playback-state/Types';
import type { VideoElementStateExportNames } from '../../playback/video-element-state/Types';
import type { VideoElementStateAtom } from '../../playback/video-element-state/VideoElementStateAtom';
import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
import type { SourceExportNames } from '../../source/Types';
import type { SourcesApiExportNames } from '../../sources-api/Types';
import type { ContextWithState } from '../../Types';
import type { PlaybackEvent, PlaybackEventMap } from './events/PlaybackEventMap';
export type PlaybackApiEventsPackageDependencies = {
    [CoreExportNames.CoreEffects]: CoreEffects;
    [EventBusExportNames.ExtendEventBusTypes]: typeof extendEventBusTypes;
    [PlaybackStatePackageExportNames.PlaybackState]: typeof PlaybackState;
    [PlaybackStatePackageExportNames.PlaybackStateMachine]: PlaybackStateMachineAtom;
    [SourcesApiExportNames.SourceEventBus]: EventBus<PlaybackEventMap>;
    [SourcesApiExportNames.SourceApiManager]: ApiManager<PlaybackStateApi>;
    [SourceExportNames.SourceState]: SourceStateAtom;
    [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
};
export declare enum PlaybackApiEventsPackageExportNames {
    PlaybackEvent = "playback-event"
}
export type PlaybackApiEventsPackageExports = {
    [PlaybackApiEventsPackageExportNames.PlaybackEvent]: typeof PlaybackEvent;
};
export type PlaybackApiEventsPackageContext = ContextHaving<PlaybackApiEventsPackageDependencies, PlaybackApiEventsPackageExports, ContextWithState>;
export type PlaybackStateApi = {
    readonly state: PlaybackState;
};
