import TinyHtmlMedia from '../TinyHtmlMedia.mjs'; /** * TinyVideo is a helper class for managing elements. * It allows configuring all standard attributes such as src, poster, controls, * autoplay, loop, muted, playsinline, controlslist, crossorigin, preload, * disablepictureinpicture, disableremoteplayback, width, height, and volume, * with validation. * * @example * const video = new TinyHtmlVideo({ * src: 'video.mp4', * controls: true, * autoplay: false, * width: 640, * height: 360 * }); * * @extends TinyHtmlMedia */ declare class TinyHtmlVideo extends TinyHtmlMedia { /** * Creates a new TinyVideo instance. * @param {Object} config * @param {string} [config.src=''] - The video file URL. * @param {string} [config.poster=''] - Image URL shown before playback starts. * @param {boolean} [config.controls=false] - Whether to show default controls. * @param {boolean} [config.autoplay=false] - Start playback automatically (muted may be required). * @param {boolean} [config.loop=false] - Replay automatically when finished. * @param {boolean} [config.muted=false] - Start playback muted. * @param {boolean} [config.playsinline=false] - Play inline instead of fullscreen (mobile devices). * @param {'nodownload'|'nofullscreen'|'noremoteplayback'|string} [config.controlslist] - Restrict controls visibility. * @param {'anonymous'|'use-credentials'} [config.crossorigin] - CORS setting for the video request. * @param {boolean} [config.disablepictureinpicture=false] - Disable Picture-in-Picture mode. * @param {boolean} [config.disableremoteplayback=false] - Disable casting / remote playback. * @param {'auto'|'metadata'|'none'} [config.preload] - Preload behavior suggestion. * @param {number} [config.width] - CSS pixel width of the video display. * @param {number} [config.height] - CSS pixel height of the video display. * @param {number} [config.volume] - Initial volume (0.0–1.0). * @param {string|string[]|Set} [config.tags=[]] - Initial CSS classes. * @param {string} [config.mainClass=""] - Main CSS class applied. */ constructor({ src, poster, controls, autoplay, loop, muted, playsinline, controlslist, crossorigin, disablepictureinpicture, disableremoteplayback, preload, width, height, volume, tags, mainClass, }?: { src?: string; poster?: string; controls?: boolean; autoplay?: boolean; loop?: boolean; muted?: boolean; playsinline?: boolean; controlslist?: 'nodownload' | 'nofullscreen' | 'noremoteplayback' | string; crossorigin?: 'anonymous' | 'use-credentials'; disablepictureinpicture?: boolean; disableremoteplayback?: boolean; preload?: 'auto' | 'metadata' | 'none'; width?: number; height?: number; volume?: number; tags?: string | string[] | Set; mainClass?: string; }); /** @param {string} src */ set src(src: string); /** @returns {string|null} */ get src(): string | null; /** @param {string} poster */ set poster(poster: string); /** @returns {string|null} */ get poster(): string | null; /** @param {boolean} controls */ set controls(controls: boolean); /** @returns {boolean} */ get controls(): boolean; /** @param {boolean} playsinline */ set playsinline(playsinline: boolean); /** @returns {boolean} */ get playsinline(): boolean; /** @param {'nodownload'|'nofullscreen'|'noremoteplayback'|string} controlslist */ set controlslist(controlslist: 'nodownload' | 'nofullscreen' | 'noremoteplayback' | string); /** @returns {string|null} */ get controlslist(): string | null; /** @param {'anonymous'|'use-credentials'} crossorigin */ set crossorigin(crossorigin: 'anonymous' | 'use-credentials'); /** @returns {string|null} */ get crossorigin(): string | null; /** @param {boolean} disable */ set disablepictureinpicture(disable: boolean); /** @returns {boolean} */ get disablepictureinpicture(): boolean; /** @param {boolean} disable */ set disableremoteplayback(disable: boolean); /** @returns {boolean} */ get disableremoteplayback(): boolean; /** @returns {Promise|undefined} */ requestFullscreen(): Promise | undefined; /** @returns {Promise} */ exitFullscreen(): Promise; } export default TinyHtmlVideo; //# sourceMappingURL=TinyHtmlVideo.d.mts.map