import { Event } from 'microevent.ts'; import VideoOutputInterface from '../../io/VideoOutputInterface'; import RGBASurfaceInterface from '../../../video/surface/RGBASurfaceInterface'; import Config from '../Config'; export default class FrameManager { private _config; constructor(_config: Config); reset(): void; nextLine(): void; isRendering(): boolean; setVblank(vblank: boolean): void; setVsync(vsync: boolean): void; getHeight(): number; setSurfaceFactory(factory: VideoOutputInterface.SurfaceFactoryInterface): void; getCurrentLine(): number; getDebugState(): string; private _getReadableState; private _startFrame; private _finalizeFrame; private _setState; newFrame: Event; vblank: boolean; surfaceBuffer: RGBASurfaceInterface.BufferInterface; private _vblankLines; private _kernelLines; private _overscanLines; private _linesWithoutVsync; private _state; private _vsync; private _lineInState; private _surfaceFactory; private _surface; private _frameStart; }