CoolFace
Apppublic

Pinsave/counterstrike

sourceHugging Faceupdated 3mo agoView on Hugging Face
1likes
tty.d.ts209 linesDownload Raw Back to node
1/**2 * The `node:tty` module provides the `tty.ReadStream` and `tty.WriteStream` classes. In most cases, it will not be necessary or possible to use this module3 * directly. However, it can be accessed using:4 *5 * ```js6 * import tty from 'node:tty';7 * ```8 *9 * When Node.js detects that it is being run with a text terminal ("TTY")10 * attached, `process.stdin` will, by default, be initialized as an instance of `tty.ReadStream` and both `process.stdout` and `process.stderr` will, by11 * default, be instances of `tty.WriteStream`. The preferred method of determining12 * whether Node.js is being run within a TTY context is to check that the value of13 * the `process.stdout.isTTY` property is `true`:14 *15 * ```console16 * $ node -p -e "Boolean(process.stdout.isTTY)"17 * true18 * $ node -p -e "Boolean(process.stdout.isTTY)" | cat19 * false20 * ```21 *22 * In most cases, there should be little to no reason for an application to23 * manually create instances of the `tty.ReadStream` and `tty.WriteStream` classes.24 * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/tty.js)25 */26declare module "tty" {27    import * as net from "node:net";28    /**29     * The `tty.isatty()` method returns `true` if the given `fd` is associated with30     * a TTY and `false` if it is not, including whenever `fd` is not a non-negative31     * integer.32     * @since v0.5.833     * @param fd A numeric file descriptor34     */35    function isatty(fd: number): boolean;36    /**37     * Represents the readable side of a TTY. In normal circumstances `process.stdin` will be the only `tty.ReadStream` instance in a Node.js38     * process and there should be no reason to create additional instances.39     * @since v0.5.840     */41    class ReadStream extends net.Socket {42        constructor(fd: number, options?: net.SocketConstructorOpts);43        /**44         * A `boolean` that is `true` if the TTY is currently configured to operate as a45         * raw device.46         *47         * This flag is always `false` when a process starts, even if the terminal is48         * operating in raw mode. Its value will change with subsequent calls to `setRawMode`.49         * @since v0.7.750         */51        isRaw: boolean;52        /**53         * Allows configuration of `tty.ReadStream` so that it operates as a raw device.54         *55         * When in raw mode, input is always available character-by-character, not56         * including modifiers. Additionally, all special processing of characters by the57         * terminal is disabled, including echoing input58         * characters. Ctrl+C will no longer cause a `SIGINT` when59         * in this mode.60         * @since v0.7.761         * @param mode If `true`, configures the `tty.ReadStream` to operate as a raw device. If `false`, configures the `tty.ReadStream` to operate in its default mode. The `readStream.isRaw`62         * property will be set to the resulting mode.63         * @return The read stream instance.64         */65        setRawMode(mode: boolean): this;66        /**67         * A `boolean` that is always `true` for `tty.ReadStream` instances.68         * @since v0.5.869         */70        isTTY: boolean;71    }72    /**73     * -1 - to the left from cursor74     *  0 - the entire line75     *  1 - to the right from cursor76     */77    type Direction = -1 | 0 | 1;78    /**79     * Represents the writable side of a TTY. In normal circumstances, `process.stdout` and `process.stderr` will be the only`tty.WriteStream` instances created for a Node.js process and there80     * should be no reason to create additional instances.81     * @since v0.5.882     */83    class WriteStream extends net.Socket {84        constructor(fd: number);85        addListener(event: string, listener: (...args: any[]) => void): this;86        addListener(event: "resize", listener: () => void): this;87        emit(event: string | symbol, ...args: any[]): boolean;88        emit(event: "resize"): boolean;89        on(event: string, listener: (...args: any[]) => void): this;90        on(event: "resize", listener: () => void): this;91        once(event: string, listener: (...args: any[]) => void): this;92        once(event: "resize", listener: () => void): this;93        prependListener(event: string, listener: (...args: any[]) => void): this;94        prependListener(event: "resize", listener: () => void): this;95        prependOnceListener(event: string, listener: (...args: any[]) => void): this;96        prependOnceListener(event: "resize", listener: () => void): this;97        /**98         * `writeStream.clearLine()` clears the current line of this `WriteStream` in a99         * direction identified by `dir`.100         * @since v0.7.7101         * @param callback Invoked once the operation completes.102         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.103         */104        clearLine(dir: Direction, callback?: () => void): boolean;105        /**106         * `writeStream.clearScreenDown()` clears this `WriteStream` from the current107         * cursor down.108         * @since v0.7.7109         * @param callback Invoked once the operation completes.110         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.111         */112        clearScreenDown(callback?: () => void): boolean;113        /**114         * `writeStream.cursorTo()` moves this `WriteStream`'s cursor to the specified115         * position.116         * @since v0.7.7117         * @param callback Invoked once the operation completes.118         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.119         */120        cursorTo(x: number, y?: number, callback?: () => void): boolean;121        cursorTo(x: number, callback: () => void): boolean;122        /**123         * `writeStream.moveCursor()` moves this `WriteStream`'s cursor _relative_ to its124         * current position.125         * @since v0.7.7126         * @param callback Invoked once the operation completes.127         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.128         */129        moveCursor(dx: number, dy: number, callback?: () => void): boolean;130        /**131         * Returns:132         *133         * * `1` for 2,134         * * `4` for 16,135         * * `8` for 256,136         * * `24` for 16,777,216 colors supported.137         *138         * Use this to determine what colors the terminal supports. Due to the nature of139         * colors in terminals it is possible to either have false positives or false140         * negatives. It depends on process information and the environment variables that141         * may lie about what terminal is used.142         * It is possible to pass in an `env` object to simulate the usage of a specific143         * terminal. This can be useful to check how specific environment settings behave.144         *145         * To enforce a specific color support, use one of the below environment settings.146         *147         * * 2 colors: `FORCE_COLOR = 0` (Disables colors)148         * * 16 colors: `FORCE_COLOR = 1`149         * * 256 colors: `FORCE_COLOR = 2`150         * * 16,777,216 colors: `FORCE_COLOR = 3`151         *152         * Disabling color support is also possible by using the `NO_COLOR` and `NODE_DISABLE_COLORS` environment variables.153         * @since v9.9.0154         * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal.155         */156        getColorDepth(env?: object): number;157        /**158         * Returns `true` if the `writeStream` supports at least as many colors as provided159         * in `count`. Minimum support is 2 (black and white).160         *161         * This has the same false positives and negatives as described in `writeStream.getColorDepth()`.162         *163         * ```js164         * process.stdout.hasColors();165         * // Returns true or false depending on if `stdout` supports at least 16 colors.166         * process.stdout.hasColors(256);167         * // Returns true or false depending on if `stdout` supports at least 256 colors.168         * process.stdout.hasColors({ TMUX: '1' });169         * // Returns true.170         * process.stdout.hasColors(2 ** 24, { TMUX: '1' });171         * // Returns false (the environment setting pretends to support 2 ** 8 colors).172         * ```173         * @since v11.13.0, v10.16.0174         * @param [count=16] The number of colors that are requested (minimum 2).175         * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal.176         */177        hasColors(count?: number): boolean;178        hasColors(env?: object): boolean;179        hasColors(count: number, env?: object): boolean;180        /**181         * `writeStream.getWindowSize()` returns the size of the TTY182         * corresponding to this `WriteStream`. The array is of the type `[numColumns, numRows]` where `numColumns` and `numRows` represent the number183         * of columns and rows in the corresponding TTY.184         * @since v0.7.7185         */186        getWindowSize(): [number, number];187        /**188         * A `number` specifying the number of columns the TTY currently has. This property189         * is updated whenever the `'resize'` event is emitted.190         * @since v0.7.7191         */192        columns: number;193        /**194         * A `number` specifying the number of rows the TTY currently has. This property195         * is updated whenever the `'resize'` event is emitted.196         * @since v0.7.7197         */198        rows: number;199        /**200         * A `boolean` that is always `true`.201         * @since v0.5.8202         */203        isTTY: boolean;204    }205}206declare module "node:tty" {207    export * from "tty";208}209