import { Emitter } from 'mitt'; /** * @category MediaStore * @category Events */ export declare type VoidEventsKey = '*' | 'play' | 'pause' | 'autoplayStart' | 'ready' | 'firstReady' | 'ended' | 'mute' | 'unnmute' | 'end' | 'pipEnter' | 'pipExit' | 'fullscreenEnter' | 'fullscreenExit'; /** Events that MediaApi is listening, and have no arguments * @category MediaStore * @category Events */ export declare type VoidEvents = Record; /** Events that MediaApi is listening, and have arguments * @category MediaStore * @category Events */ export declare type ExtendedEvents = { setPlaybackRate: { playbackRate: number; }; seeked: { diffMs: number; }; timeupdate: TimeUpdateEvent; progress: TimeUpdateEvent; showControls: ShowControlsEvent; showPipControls: ShowControlsEvent; durationchange: { duration: number; }; onTimeAlarm: TimeUpdateEvent; }; /** * @category MediaStore * @category Events * */ export declare type MediaEvents = VoidEvents & ExtendedEvents; /** * @category MediaStore * @category Events * */ export declare type EmitterEvents = Emitter; /** Event emitted on `timeupdate`. Same as browsers native * @category MediaStore * @category Events */ export declare type TimeUpdateEvent = Record<'seconds' | 'duration', number>; /** Event emitted when `showControls` was triggered * @category MediaStore * @category Events */ export declare type ShowControlsEvent = { isUpdated: boolean; }; /** Typeguard for `ShowControlsEvent` * @category MediaStore * @category Events */ export declare const isShowControlsEvent: (event: unknown) => event is ShowControlsEvent; /** Typeguard for `TimeUpdateEvent` * @category MediaStore * @category Events */ export declare const isTimeUpdateEvent: (event: unknown) => event is TimeUpdateEvent; /** Add/Remove EventListeners * @category MediaStore * @category Events */ export interface EmitterListeners { removeEventListener: EmitterEvents['off']; addEventListener: EmitterEvents['on']; }