import { AnyPlayerStore, Media, MediaContainer, PlayerStore } from "@videojs/core/dom";
import { Context } from "@videojs/element/context";

//#region src/player/context.d.ts
declare const PLAYER_CONTEXT_KEY: unique symbol;
type PlayerContextValue<Store extends PlayerStore = AnyPlayerStore> = Store;
type PlayerContext<Store extends PlayerStore = AnyPlayerStore> = Context<typeof PLAYER_CONTEXT_KEY, PlayerContextValue<Store>>;
/**
 * The default player context instance for consuming the player store in controllers.
 *
 * @public
 */
declare const playerContext: Context<typeof PLAYER_CONTEXT_KEY, AnyPlayerStore>;
declare const MEDIA_CONTEXT_KEY: unique symbol;
interface MediaContextValue {
  media: Media | null;
  setMedia: (media: Media | null) => void;
}
type MediaContext = Context<typeof MEDIA_CONTEXT_KEY, MediaContextValue>;
declare const mediaContext: Context<typeof MEDIA_CONTEXT_KEY, MediaContextValue>;
declare const CONTAINER_CONTEXT_KEY: unique symbol;
interface ContainerContextValue {
  container: MediaContainer | null;
  setContainer: (container: MediaContainer | null) => void;
}
type ContainerContext = Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;
declare const containerContext: Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;
//#endregion
export { CONTAINER_CONTEXT_KEY, ContainerContext, ContainerContextValue, MEDIA_CONTEXT_KEY, MediaContext, MediaContextValue, PLAYER_CONTEXT_KEY, PlayerContext, PlayerContextValue, containerContext, mediaContext, playerContext };
//# sourceMappingURL=context.d.ts.map