selectionManager: ISelectionManager;
charMeasure: ICharMeasure;
textarea: HTMLTextAreaElement;
- ybase: number;
- ydisp: number;
- lines: ICircularList<string>;
rows: number;
cols: number;
browser: IBrowser;
children: HTMLElement[];
cursorHidden: boolean;
cursorState: number;
- x: number;
- y: number;
defAttr: number;
+ scrollback: number;
+ buffers: IBufferSet;
+ buffer: IBuffer;
/**
* Emit the 'data' event and populate the given data.
cancel(ev: Event, force?: boolean);
log(text: string): void;
emit(event: string, data: any);
+ reset(): void;
+ showCursor(): void;
+ blankLine(cur?: boolean, isWrapped?: boolean, cols?: number);
+}
+
+export interface IBuffer {
+ lines: ICircularList<[number, string, number][]>;
+ ydisp: number;
+ ybase: number;
+ y: number;
+ x: number;
+ tabs: any;
+}
+
+export interface IBufferSet {
+ alt: IBuffer;
+ normal: IBuffer;
+ active: IBuffer;
+
+ activateNormalBuffer(): void;
+ activateAltBuffer(): void;
}
export interface ISelectionManager {
deregisterLinkMatcher(matcherId: number): boolean;
}
-interface ICircularList<T> {
+export interface ICircularList<T> extends IEventEmitter {
length: number;
maxLength: number;
+ forEach: (callbackfn: (value: T, index: number) => void) => void;
- forEach(callbackfn: (value: T, index: number, array: T[]) => void): void;
get(index: number): T;
set(index: number, value: T): void;
push(value: T): void;
shiftElements(start: number, count: number, offset: number): void;
}
+export interface IEventEmitter {
+ on(type, listener): void;
+ off(type, listener): void;
+}
+
export interface LinkMatcherOptions {
/**
* The index of the link from the regex.match(text) call. This defaults to 0