import * as _solidjs_use_shared from '@solidjs-use/shared'; import { MaybeAccessor } from '@solidjs-use/shared'; import * as solid_js from 'solid-js'; import { ConfigurableDocument } from '../_configurable.js'; /** * Many of the jsdoc definitions here are modified version of the * documentation from MDN(https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement) */ interface UseMediaSource { /** * The source url for the media */ src: string; /** * The media codec type */ type?: string; } interface UseMediaTextTrackSource { /** * Indicates that the track should be enabled unless the user's preferences indicate * that another track is more appropriate */ default?: boolean; /** * How the text track is meant to be used. If omitted the default kind is subtitles. */ kind: TextTrackKind; /** * A user-readable title of the text track which is used by the browser * when listing available text tracks. */ label: string; /** * Address of the track (.vtt file). Must be a valid URL. This attribute * must be specified and its URL value must have the same origin as the document */ src: string; /** * Language of the track text data. It must be a valid BCP 47 language tag. * If the kind attribute is set to subtitles, then srclang must be defined. */ srcLang: string; } interface UseMediaControlsOptions extends ConfigurableDocument { /** * The source for the media, may either be a string, a `UseMediaSource` object, or a list * of `UseMediaSource` objects. */ src?: MaybeAccessor; /** * A list of text tracks for the media */ tracks?: MaybeAccessor; } interface UseMediaTextTrack { /** * The index of the text track */ id: number; /** * The text track label */ label: string; /** * Language of the track text data. It must be a valid BCP 47 language tag. * If the kind attribute is set to subtitles, then srclang must be defined. */ language: string; /** * Specifies the display mode of the text track, either `disabled`, * `hidden`, or `showing` */ mode: TextTrackMode; /** * How the text track is meant to be used. If omitted the default kind is subtitles. */ kind: TextTrackKind; /** * Indicates the track's in-band metadata track dispatch type. */ inBandMetadataTrackDispatchType: string; /** * A list of text track cues */ cues: TextTrackCueList | null; /** * A list of active text track cues */ activeCues: TextTrackCueList | null; } /** * Reactive media controls for both `audio` and `video` elements. * * @see https://solidjs-use.github.io/solidjs-use/core/useMediaControls */ declare function useMediaControls(target: MaybeAccessor, options?: UseMediaControlsOptions): { currentTime: solid_js.Accessor; setCurrentTime: solid_js.Setter; duration: solid_js.Accessor; waiting: solid_js.Accessor; setWaiting: solid_js.Setter; seeking: solid_js.Accessor; setSeeking: solid_js.Setter; ended: solid_js.Accessor; setEnded: solid_js.Setter; stalled: solid_js.Accessor; setStalled: solid_js.Setter; buffered: solid_js.Accessor<[number, number][]>; setBuffered: solid_js.Setter<[number, number][]>; playing: solid_js.Accessor; setPlaying: solid_js.Setter; rate: solid_js.Accessor; setRate: solid_js.Setter; volume: solid_js.Accessor; setVolume: solid_js.Setter; muted: solid_js.Accessor; setMuted: solid_js.Setter; tracks: solid_js.Accessor; setTracks: solid_js.Setter; selectedTrack: solid_js.Accessor; setSelectedTrack: solid_js.Setter; enableTrack: (track: number | UseMediaTextTrack, disableTracks?: boolean) => void; disableTrack: (track?: number | UseMediaTextTrack) => void; supportsPictureInPicture: boolean | undefined; togglePictureInPicture: () => Promise; isPictureInPicture: solid_js.Accessor; onSourceError: _solidjs_use_shared.EventHookOn; }; type UseMediaControlsReturn = ReturnType; export { UseMediaControlsReturn, UseMediaSource, UseMediaTextTrack, UseMediaTextTrackSource, useMediaControls };