import VideoEndpointInterface from './VideoEndpointInterface'; declare class Video { private _canvas; constructor(_canvas: HTMLCanvasElement, config?: Partial); init(): this; close(): this; resize(width?: number, height?: number): this; getCanvas(): HTMLCanvasElement; bind(video: VideoEndpointInterface): this; unbind(): this; getConfig(): Video.Config; updateConfig(config: Partial): this; private static _frameHandler; private _getRenderingContext; private _scheduleDraw; private _cancelDraw; private _onAnimationFrame; private _draw; private _createVertexCoordinateBuffer; private _updateVertexBuffer; private _createTextureCoordinateBuffer; private _updateCanvasSize; private _configureSourceTexture; private _configureProcessors; private _applyConfiguration; private _onContextLost; private _onContextRestored; private _config; private _gl; private _video; private _capabilities; private _mainProgram; private _vertexCoordinateBuffer; private _textureCoordinateBuffer; private _sourceTexture; private _anmiationFrameHandle; private _phosphorProcessor; private _ntscProcessor; private _scanlineProcessor; private _integerScalingProcessor; private _processors; private _pendingFrames; private _consecutiveUnderflows; private _hasFrame; } declare namespace Video { const enum ScalingMode { qis = "qis", bilinear = "bilinear", none = "none" } const enum TvEmulation { composite = "composite", svideo = "svideo", none = "none" } interface Config { gamma: number; scalingMode: ScalingMode; phosphorLevel: number; scanlineLevel: number; tvEmulation: TvEmulation; } } export default Video;