import { PureComponent } from "react";
import { Milliseconds, MillisecondsAccepted, Url } from "@ef-carbon/primitive";
import IDimensions from "../IDimensions";
import IVideo, { IOptions } from "./IVideo";
export { IDimensions, Url, Milliseconds, MillisecondsAccepted };
export interface IProps extends IOptions {
}
export default abstract class Video
extends PureComponent
implements IVideo {
abstract readonly looping: boolean;
abstract readonly start: Milliseconds;
abstract readonly end: Milliseconds;
abstract seek(milliseconds: MillisecondsAccepted): Promise;
abstract readonly position: Milliseconds | undefined;
abstract readonly duration: Milliseconds | undefined;
abstract readonly transitioning: boolean;
abstract readonly buffering: boolean;
abstract readonly playing: boolean;
abstract play(): Promise;
abstract readonly paused: boolean;
abstract pause(): Promise;
abstract readonly stopped: boolean;
abstract stop(): Promise;
abstract readonly width: number | undefined;
abstract readonly height: number | undefined;
abstract readonly url: Url;
abstract readonly loading: boolean;
abstract readonly loaded: boolean;
abstract readonly unloaded: boolean;
abstract readonly error: Error | undefined;
abstract unload(): Promise;
}