DefinitelyTyped/types/terminal-kit/ScreenBuffer.d.ts
2019-01-25 22:33:48 +04:00

140 lines
3.0 KiB
TypeScript

import NextGenEvents = require("nextgen-events");
import Terminal = require("./Terminal");
import ScreenBufferHD = require("./ScreenBufferHD");
import Rect = require("./Rect");
declare class ScreenBuffer extends NextGenEvents {
readonly dst: Terminal | ScreenBuffer;
readonly x: number;
readonly y: number;
readonly blending: boolean | ScreenBufferHD.IsBlending;
constructor(options: ScreenBuffer.Options);
static create(options: ScreenBuffer.Options): ScreenBuffer;
static createFromString(
options: {
attr: number | ScreenBuffer.Attributes;
transparencyChar: string;
transparencyType: number;
},
str: string
): ScreenBuffer;
static loadImage(
url: string,
options: {
terminal: Terminal;
shrink?: {
width: number;
height: number;
};
},
calback: (error: any, image: ScreenBufferHD) => void
): void;
static loadImage(
url: string,
calback: (error?: any, image?: ScreenBufferHD) => void
): void;
static attr2object(attrFlags: number): void;
attr2object(attrFlags: number): void;
static object2attr(attrObject: ScreenBuffer.Attributes): void;
object2attr(attrObject: ScreenBuffer.Attributes): void;
static loadSync(filepath: string): ScreenBuffer;
fill(options?: {
attr: ScreenBuffer.Attributes | number;
char?: string;
}): void;
clear(): void;
put(
options: ScreenBuffer.PutOptions,
format: string,
...formatArgumets: any[]
): void;
get(options?: {
x: number;
y: number;
}): { char: string; attr: ScreenBuffer.Attributes };
resize(fromRect: Rect | Rect.Options): void;
draw(options?: ScreenBuffer.DrawOptions): void;
drawCursor(options?: { dst: Terminal | ScreenBuffer }): void;
moveTo(x: number, y: number): void;
vScroll(offset: number, drawToTerminal: boolean): void;
dumpChars(): string;
saveSync(filepath: string): void;
}
export = ScreenBuffer;
declare namespace ScreenBuffer {
interface Options {
width?: number;
height?: number;
dst: Terminal | ScreenBuffer;
x?: number;
y?: number;
blending?: boolean;
wrap?: boolean;
noFill?: boolean;
}
interface DrawOptions {
dst?: Terminal | ScreenBuffer;
x?: number;
y?: number;
srcClipRect?: Rect;
dstClipRect?: Rect;
blending?: boolean;
delta?: boolean;
wrap?: boolean | "x" | "y";
tile?: boolean;
}
interface Attributes {
color?: number;
defaultColor?: boolean;
bgColor?: number;
bgDefaultColor?: boolean;
bold?: boolean;
dim?: boolean;
italic?: boolean;
underline?: boolean;
blink?: boolean;
inverse?: boolean;
hidden?: boolean;
strike?: boolean;
transparency?: boolean;
fgTransparency?: boolean;
bgTransparency?: boolean;
styleTransparency?: boolean;
charTransparency?: boolean;
}
interface PutOptions {
x: number;
y: number;
attr: Attributes | number;
wrap: boolean;
direction?: "right" | "left" | "up" | "down" | null;
dx: number;
dy: number;
}
}