build-in-public-bot
Version:
AI-powered CLI bot for automating build-in-public tweets with code screenshots
118 lines • 2.86 kB
TypeScript
import { ParsedLine } from './ansi-parser';
export interface TerminalData {
lines: ParsedLine[];
width: number;
height: number;
cursorPosition?: {
line: number;
col: number;
};
}
export interface CaptureOptions {
height?: number;
theme?: string;
includeColors?: boolean;
fontSize?: number;
padding?: number;
}
export interface Selection {
type: 'line' | 'pattern' | 'command';
start: {
line: number;
col: number;
};
end: {
line: number;
col: number;
};
style?: string;
}
export interface ArrowAnnotation {
from: {
line: number;
col: number;
};
to: {
line: number;
col: number;
};
label?: string;
}
export interface BoxAnnotation {
startLine: number;
endLine: number;
startCol: number;
endCol?: number;
}
export interface NoteAnnotation {
line: number;
text: string;
}
export interface Annotation {
type: 'arrow' | 'box' | 'note';
data: ArrowAnnotation | BoxAnnotation | NoteAnnotation;
}
export declare class TerminalCapture {
private ansiParser;
private terminalData?;
private selections;
private annotations;
private themeLoader;
private theme?;
constructor();
capture(options?: CaptureOptions): Promise<TerminalData>;
private getTerminalContent;
private detectEditor;
private captureMacOS;
private captureLinux;
private captureGeneric;
selectLines(ranges: Array<{
start: number;
end: number;
}>): void;
highlightPattern(pattern: string, style?: string): void;
highlightRegex(regex: RegExp, style?: string): void;
selectLastCommand(): void;
selectCommand(index: number): void;
selectErrors(): void;
selectDiff(): void;
showCursor(line: number, col: number): void;
dimExcept(ranges: Array<{
start: number;
end: number;
}>): void;
addArrow(from: {
line: number;
col: number;
}, to: {
line: number;
col: number;
}, label?: string): void;
addBox(box: {
startLine: number;
endLine: number;
startCol: number;
endCol: number;
}): void;
addNote(line: number, text: string): void;
render(_format?: 'png' | 'svg'): Promise<Buffer>;
private renderSelections;
private renderLines;
private renderCursor;
private renderAnnotations;
private renderArrow;
private renderBox;
private renderNote;
private findPrompts;
private applyANSIStyle;
private getSelectionStyle;
getAvailableThemes(): string[];
getEditorInfo(): {
isEditor: boolean;
editor?: string;
mode?: string;
};
private drawRoundedRect;
private drawWindowControls;
}
//# sourceMappingURL=terminal-capture.d.ts.map