export declare class ModeTracker { private decset; /** * Kitty keyboard flags in force and the ones pushed before, per screen (the protocol * keeps a stack for the main screen and one for the alternate screen). */ private kitty; private alt; private otherKeys; /** DECSTBM: the scroll region of each screen, 1-based and inclusive, or none. */ private regions; /** DECSCUSR: the cursor's shape (0: the terminal's default). */ private cursorShape; /** The G0 character set (B: ASCII, 0: line drawing). */ private g0; private carry; /** Follow a chunk of the program's output. */ feed(chunk: string): void; /** A resize resets the scroll region, as terminals do. */ resized(): void; private stack; private reset; private apply; /** The scroll region in force, if any (the snapshot sets it after its content). */ scrollRegion(): [number, number] | undefined; /** Sequences that put a fresh terminal in these modes (the scroll region aside). */ restore(): string; } /** * The escape sequence the program's output has started and not finished (a chunk may end * inside one). An attach's snapshot is taken between two chunks: the part already written * is in the mirror's parser but not in the snapshot, so it goes to the client first. */ export declare class StreamTail { private state; private buf; feed(chunk: string): void; /** The unfinished sequence so far ("" between sequences). */ text(): string; }