type State … type Winsize … // StdStreams returns the standard streams (stdin, stdout, stderr). // // On Windows, it attempts to turn on VT handling on all std handles if // supported, or falls back to terminal emulation. On Unix, this returns // the standard [os.Stdin], [os.Stdout] and [os.Stderr]. func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { … } // GetFdInfo returns the file descriptor for an os.File and indicates whether the file represents a terminal. func GetFdInfo(in interface{ … } // GetWinsize returns the window size based on the specified file descriptor. func GetWinsize(fd uintptr) (*Winsize, error) { … } // SetWinsize tries to set the specified window size for the specified file // descriptor. It is only implemented on Unix, and returns an error on Windows. func SetWinsize(fd uintptr, ws *Winsize) error { … } // IsTerminal returns true if the given file descriptor is a terminal. func IsTerminal(fd uintptr) bool { … } // RestoreTerminal restores the terminal connected to the given file descriptor // to a previous state. func RestoreTerminal(fd uintptr, state *State) error { … } // SaveState saves the state of the terminal connected to the given file descriptor. func SaveState(fd uintptr) (*State, error) { … } // DisableEcho applies the specified state to the terminal connected to the file // descriptor, with echo disabled. func DisableEcho(fd uintptr, state *State) error { … } // SetRawTerminal puts the terminal connected to the given file descriptor into // raw mode and returns the previous state. On UNIX, this is the equivalent of // [MakeRaw], and puts both the input and output into raw mode. On Windows, it // only puts the input into raw mode. func SetRawTerminal(fd uintptr) (previousState *State, err error) { … } // SetRawTerminalOutput puts the output of terminal connected to the given file // descriptor into raw mode. On UNIX, this does nothing and returns nil for the // state. On Windows, it disables LF -> CRLF translation. func SetRawTerminalOutput(fd uintptr) (previousState *State, err error) { … } // MakeRaw puts the terminal (Windows Console) connected to the // given file descriptor into raw mode and returns the previous state of // the terminal so that it can be restored. func MakeRaw(fd uintptr) (previousState *State, err error) { … }