@opentui/core
Version:
OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)
60 lines (59 loc) • 1.53 kB
TypeScript
import type { TestRenderer } from "./test-renderer";
export interface RecordBuffersOptions {
fg?: boolean;
bg?: boolean;
attributes?: boolean;
}
export interface RecordedBuffers {
fg?: Float32Array;
bg?: Float32Array;
attributes?: Uint8Array;
}
export interface RecordedFrame {
frame: string;
timestamp: number;
frameNumber: number;
buffers?: RecordedBuffers;
}
export interface TestRecorderOptions {
recordBuffers?: RecordBuffersOptions;
}
/**
* TestRecorder records frames from a TestRenderer by hooking into the render pipeline.
* It captures the character frame after each native render pass.
*/
export declare class TestRecorder {
private renderer;
private frames;
private recording;
private frameNumber;
private startTime;
private originalRenderNative?;
private decoder;
private recordBuffers;
constructor(renderer: TestRenderer, options?: TestRecorderOptions);
/**
* Start recording frames. This hooks into the renderer's renderNative method.
*/
rec(): void;
/**
* Stop recording frames and restore the original renderNative method.
*/
stop(): void;
/**
* Get the recorded frames.
*/
get recordedFrames(): RecordedFrame[];
/**
* Clear all recorded frames.
*/
clear(): void;
/**
* Check if currently recording.
*/
get isRecording(): boolean;
/**
* Capture the current frame from the renderer's buffer.
*/
private captureFrame;
}