import * as React from 'react'; export interface HTMLMediaProps extends React.AudioHTMLAttributes, React.VideoHTMLAttributes { src: string; } export interface HTMLMediaState { buffered: any[]; duration: number; paused: boolean; muted: boolean; time: number; volume: number; playing: boolean; } export interface HTMLMediaControls { play: () => Promise | void; pause: () => void; mute: () => void; unmute: () => void; volume: (volume: number) => void; seek: (time: number) => void; } declare type MediaPropsWithRef = HTMLMediaProps & { ref?: React.MutableRefObject; }; export default function createHTMLMediaHook(tag: 'audio' | 'video'): (elOrProps: HTMLMediaProps | React.ReactElement) => readonly [React.ReactElement, string | ((props: any) => React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>, HTMLMediaState, { play: () => Promise | undefined; pause: () => void; seek: (time: number) => void; volume: (volume: number) => void; mute: () => void; unmute: () => void; }, React.MutableRefObject]; export {};