import type { SignalValue, SimpleSignal } from '@revideo/core'; import type { RectProps } from './Rect'; import { Rect } from './Rect'; export interface MediaProps extends RectProps { src?: SignalValue; loop?: SignalValue; playbackRate?: number; volume?: number; time?: SignalValue; play?: boolean; awaitCanPlay?: SignalValue; allowVolumeAmplificationInPreview?: SignalValue; } export declare abstract class Media extends Rect { readonly src: SimpleSignal; readonly loop: SimpleSignal; readonly playbackRate: SimpleSignal; protected readonly time: SimpleSignal; protected readonly playing: SimpleSignal; protected readonly awaitCanPlay: SimpleSignal; protected readonly allowVolumeAmplificationInPreview: SimpleSignal; protected volume: number; protected static readonly amplificationPool: Record; protected lastTime: number; constructor(props: MediaProps); isPlaying(): boolean; getCurrentTime(): number; getDuration(): number; getVolume(): number; getUrl(): string; dispose(): void; completion(): number; protected abstract mediaElement(): HTMLMediaElement; protected abstract seekedMedia(): HTMLMediaElement; protected abstract fastSeekedMedia(): HTMLMediaElement; protected abstract draw(context: CanvasRenderingContext2D): Promise; protected setCurrentTime(value: number): void; setVolume(volume: number): void; protected amplify(node: HTMLMediaElement, volume: number): void; protected setPlaybackRate(playbackRate: number): void; protected scheduleSeek(time: number): void; /** * Waits for the canplay event to be fired before calling onCanPlay. * * If the media is already ready to play, onCanPlay is called immediately. * @param onCanPlay - The function to call when the media is ready to play. * @returns */ protected waitForCanPlay(media: HTMLMediaElement, onCanPlay: () => void): void; /** * Returns true if we should wait for the media to be ready to play. */ protected waitForCanPlayNecessary(media: HTMLMediaElement): boolean; play(): void; pause(): void; clampTime(time: number): number; protected collectAsyncResources(): void; protected getErrorReason(errCode?: number): string; } //# sourceMappingURL=Media.d.ts.map