/**
 * Enum for XTerm Window Operations (XTWINOPS).
 * These are parameters for the `CSI Ps ; Ps ; Ps t` sequence.
 * @see {@link https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps;Ps;Ps-t.1EB0}
 */
declare enum XTermWindowOp {
  /**
   * De-iconify window.
   */
  DEICONIFY_WINDOW = 1,
  /**
   * Iconify window.
   */
  ICONIFY_WINDOW = 2,
  /**
   * Move window to `[x, y]`.
   */
  MOVE_WINDOW = 3,
  /**
   * Resize the text area to `[height, width]` in characters.
   */
  RESIZE_TEXT_AREA_CHARS = 4,
  /**
   * Raise the window to the front of the stacking order.
   */
  RAISE_WINDOW = 5,
  /**
   * Lower the window to the bottom of the stacking order.
   */
  LOWER_WINDOW = 6,
  /**
   * Refresh the window.
   */
  REFRESH_WINDOW = 7,
  /**
   * Resize the text area to `[height, width]` in pixels.
   */
  RESIZE_TEXT_AREA_PIXELS = 8,
  /**
   * Restore maximized window.
   */
  RESTORE_MAXIMIZED_WINDOW = 9,
  /**
   * Maximize window (i.e., "zoom" or "toggle").
   */
  MAXIMIZE_WINDOW = 10,
  /**
   * Maximize window vertically. Emitted by {@link xtermWindowOp} as `CSI 9 ; 2 t`.
   */
  MAXIMIZE_WINDOW_VERTICALLY = 10.1,
  /**
   * Maximize window horizontally. Emitted by {@link xtermWindowOp} as `CSI 9 ; 3 t`.
   */
  MAXIMIZE_WINDOW_HORIZONTALLY = 10.2,
  /**
   * Undo full-screen mode. Emitted by {@link xtermWindowOp} as `CSI 10 ; 0 t`.
   */
  UNDO_FULL_SCREEN_MODE = 10.3,
  /**
   * Report window state.
   * Response: `CSI code t` where `code` is 1 if de-iconified, 2 if iconified.
   */
  REPORT_WINDOW_STATE = 11,
  /**
   * Report window position.
   * Response: `CSI 3 ; x ; y t`
   */
  REPORT_WINDOW_POSITION = 13,
  /**
   * Report text area size in characters.
   * Response: `CSI 4 ; height ; width t`
   */
  REPORT_TEXT_AREA_SIZE_CHARS = 14,
  /**
   * Report window size in pixels.
   * Alias for `REPORT_TEXT_AREA_SIZE_PIXELS` for compatibility with some terminals (e.g., mintty).
   * Response: `CSI 4 ; height ; width t`
   * Should be REPORT_TEXT_AREA_SIZE_PIXELS (18) for XTerm, but using Go's value.
   */
  REQUEST_WINDOW_SIZE_WIN_OP_COMPAT = 14,
  /**
   * Report cell size in pixels.
   * Response: `CSI 6 ; height ; width t`
   */
  REPORT_CELL_SIZE_PIXELS = 16,
  /**
   * Report text area size in pixels.
   * Response: `CSI 8 ; height ; width t`
   */
  REPORT_TEXT_AREA_SIZE_PIXELS = 18,
  /**
   * Report icon label.
   * Response: `OSC L label ST`
   */
  REPORT_ICON_LABEL = 19,
  /**
   * Report window title.
   * Response: `OSC l label ST`
   */
  REPORT_WINDOW_TITLE = 21,
  /**
   * Push window title on stack.
   */
  PUSH_WINDOW_TITLE = 22,
  /**
   * Pop window title from stack.
   */
  POP_WINDOW_TITLE = 23,
  /**
   * Resize the screen to `[width, height]` in pixels and resize the text area to `[cols, lines]` in characters.
   * (DECSLPP - Set Lines Per Page)
   */
  RESIZE_SCREEN_AND_TEXT_AREA = 24
}
/**
 * Generates an XTerm Window Operation (XTWINOPS) sequence.
 *
 * `CSI Ps ; Ps ; Ps t`
 * @param p The primary parameter, typically one of {@link XTermWindowOp}.
 * @param ps Additional parameters.
 * @returns The ANSI sequence string, or an empty string if `p` is invalid.
 * @see {@link https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps;Ps;Ps-t.1EB0}
 */
declare const xtermWindowOp: (p: number, ...ps: number[]) => string;
/**
 * Alias for {@link xtermWindowOp}.
 */
declare const XTWINOPS: (p: number, ...ps: number[]) => string;
/**
 * Resizes the terminal window's text area to a specified height and width in characters.
 * This effectively sets the number of rows and columns for text display.
 *
 * Sequence: `CSI 4 ; height ; width t`
 * @param height The desired height in characters (number of rows).
 * @param width The desired width in characters (number of columns).
 * @returns The ANSI escape sequence to resize the text area.
 * @see xtermWindowOp
 * @see XTermWindowOp.RESIZE_TEXT_AREA_CHARS
 * @example
 * ```typescript
 * import { resizeTextAreaChars } from "@visulima/ansi";
 *
 * // Resize to 24 rows, 80 columns
 * process.stdout.write(resizeTextAreaChars(24, 80));
 * // Sends: "\x1b[4;24;80t"
 * ```
 */
declare const resizeTextAreaChars: (height: number, width: number) => string;
/**
 * Requests a report of the terminal window's text area size in characters (rows and columns).
 * The terminal is expected to respond with a sequence like `CSI 4 ; height ; width t`.
 *
 * This function uses `XTermWindowOp.REQUEST_WINDOW_SIZE_WIN_OP_COMPAT` (14), which corresponds to
 * `XTermWindowOp.REPORT_TEXT_AREA_SIZE_CHARS` in XTerm.
 *
 * Sequence: `CSI 14 t` (which triggers the report `CSI 4 ; height ; width t`).
 * @returns The ANSI escape sequence to request the text area size in characters.
 * @see xtermWindowOp
 * @see XTermWindowOp.REPORT_TEXT_AREA_SIZE_CHARS
 * @see XTermWindowOp.REQUEST_WINDOW_SIZE_WIN_OP_COMPAT
 * @example
 * ```typescript
 * import { requestTextAreaSizeChars } from "@visulima/ansi";
 *
 * process.stdout.write(requestTextAreaSizeChars());
 * // Sends: "\x1b[14t"
 * // Expect response like: "\x1b[4;24;80t" if terminal is 24x80
 * ```
 */
declare const requestTextAreaSizeChars: () => string;
/**
 * Requests a report of the terminal's character cell size in pixels.
 * The terminal is expected to respond with a sequence like `CSI 6 ; height ; width t`,
 * where height and width are the dimensions of a single character cell in pixels.
 *
 * Sequence: `CSI 16 t` (which triggers the report `CSI 6 ; height ; width t`).
 * @returns The ANSI escape sequence to request the cell size in pixels.
 * @see xtermWindowOp
 * @see XTermWindowOp.REPORT_CELL_SIZE_PIXELS
 * @example
 * ```typescript
 * import { requestCellSizePixels } from "@visulima/ansi";
 *
 * process.stdout.write(requestCellSizePixels());
 * // Sends: "\x1b[16t"
 * // Expect response like: "\x1b[6;15;8t" if cell size is 15px height, 8px width
 * ```
 */
declare const requestCellSizePixels: () => string;
/**
 * Requests a report of the terminal window's text area size in pixels.
 * The terminal is expected to respond with a sequence like `CSI 8 ; height ; width t`.
 *
 * Sequence: `CSI 18 t` (which triggers the report `CSI 8 ; height ; width t`).
 * @returns The ANSI escape sequence to request the text area size in pixels.
 * @see xtermWindowOp
 * @see XTermWindowOp.REPORT_TEXT_AREA_SIZE_PIXELS
 * @example
 * ```typescript
 * import { requestTextAreaSizePixels } from "@visulima/ansi";
 *
 * process.stdout.write(requestTextAreaSizePixels());
 * // Sends: "\x1b[18t"
 * // Expect response like: "\x1b[8;600;800t" if text area is 600px height, 800px width
 * ```
 */
declare const requestTextAreaSizePixels: () => string;
/**
 * De-iconifies the terminal window (restores it if minimized).
 *
 * Sequence: `CSI 1 t`
 * @returns The ANSI escape sequence to de-iconify the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.DEICONIFY_WINDOW
 * @example
 * ```typescript
 * import { deiconifyWindow } from "@visulima/ansi";
 *
 * process.stdout.write(deiconifyWindow()); // Sends: "\x1b[1t"
 * ```
 */
declare const deiconifyWindow: () => string;
/**
 * Iconifies the terminal window (minimizes it).
 *
 * Sequence: `CSI 2 t`
 * @returns The ANSI escape sequence to iconify the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.ICONIFY_WINDOW
 * @example
 * ```typescript
 * import { iconifyWindow } from "@visulima/ansi";
 *
 * process.stdout.write(iconifyWindow()); // Sends: "\x1b[2t"
 * ```
 */
declare const iconifyWindow: () => string;
/**
 * Moves the terminal window to the specified screen coordinates (top-left corner).
 *
 * Sequence: `CSI 3 ; x ; y t`
 * - `x`: The X-coordinate (horizontal position in pixels from the left edge).
 * - `y`: The Y-coordinate (vertical position in pixels from the top edge).
 * @param x The target X-coordinate for the window's top-left corner.
 * @param y The target Y-coordinate for the window's top-left corner.
 * @returns The ANSI escape sequence to move the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.MOVE_WINDOW
 * @example
 * ```typescript
 * import { moveWindow } from "@visulima/ansi";
 *
 * // Move window to X=100, Y=50
 * process.stdout.write(moveWindow(100, 50)); // Sends: "\x1b[3;100;50t"
 * ```
 */
declare const moveWindow: (x: number, y: number) => string;
/**
 * Raises the terminal window to the front of the stacking order.
 *
 * Sequence: `CSI 5 t`
 * @returns The ANSI escape sequence to raise the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.RAISE_WINDOW
 * @example
 * ```typescript
 * import { raiseWindow } from "@visulima/ansi";
 *
 * process.stdout.write(raiseWindow()); // Sends: "\x1b[5t"
 * ```
 */
declare const raiseWindow: () => string;
/**
 * Lowers the terminal window to the bottom of the stacking order.
 *
 * Sequence: `CSI 6 t`
 * @returns The ANSI escape sequence to lower the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.LOWER_WINDOW
 * @example
 * ```typescript
 * import { lowerWindow } from "@visulima/ansi";
 *
 * process.stdout.write(lowerWindow()); // Sends: "\x1b[6t"
 * ```
 */
declare const lowerWindow: () => string;
/**
 * Refreshes the terminal window content.
 * This can be useful if the display becomes corrupted or needs redrawing.
 *
 * Sequence: `CSI 7 t`
 * @returns The ANSI escape sequence to refresh the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.REFRESH_WINDOW
 * @example
 * ```typescript
 * import { refreshWindow } from "@visulima/ansi";
 *
 * process.stdout.write(refreshWindow()); // Sends: "\x1b[7t"
 * ```
 */
declare const refreshWindow: () => string;
/**
 * Resizes the terminal window's text area to a specified height and width in pixels.
 *
 * Sequence: `CSI 8 ; height ; width t`
 * @param height The desired height in pixels.
 * @param width The desired width in pixels.
 * @returns The ANSI escape sequence to resize the text area in pixels.
 * @see xtermWindowOp
 * @see XTermWindowOp.RESIZE_TEXT_AREA_PIXELS
 * @example
 * ```typescript
 * import { resizeTextAreaPixels } from "@visulima/ansi";
 *
 * // Resize text area to 600px height, 800px width
 * process.stdout.write(resizeTextAreaPixels(600, 800));
 * // Sends: "\x1b[8;600;800t"
 * ```
 */
declare const resizeTextAreaPixels: (height: number, width: number) => string;
/**
 * Restores a maximized terminal window to its previous size and position.
 * XTerm typically uses `CSI 9 ; 0 t` for this operation, where 0 signifies restore.
 * Some interpretations might use `CSI 9 t` if no other parameter implies restore.
 *
 * Sequence: `CSI 9 t` (simplified, relies on `XTermWindowOp.RESTORE_MAXIMIZED_WINDOW` which is 9)
 * More specific might be `CSI 9 ; 0 t`.
 * @returns The ANSI escape sequence to restore a maximized window.
 * @see xtermWindowOp
 * @see XTermWindowOp.RESTORE_MAXIMIZED_WINDOW
 * @example
 * ```typescript
 * import { restoreMaximizedWindow } from "@visulima/ansi";
 *
 * process.stdout.write(restoreMaximizedWindow()); // Sends: "\x1b[9t"
 * ```
 */
declare const restoreMaximizedWindow: () => string;
/**
 * Maximizes the terminal window (often a "zoom" or toggle effect).
 * XTerm typically uses `CSI 9 ; 1 t` for this, where 1 signifies maximize.
 * Some terminals might use `CSI 10 t` for a general maximize/toggle.
 * This function uses `XTermWindowOp.MAXIMIZE_WINDOW` which is 10.
 *
 * Sequence: `CSI 10 t` (using `XTermWindowOp.MAXIMIZE_WINDOW`).
 * @returns The ANSI escape sequence to maximize the window.
 * @see xtermWindowOp
 * @see XTermWindowOp.MAXIMIZE_WINDOW
 * @example
 * ```typescript
 * import { maximizeWindow } from "@visulima/ansi";
 *
 * process.stdout.write(maximizeWindow()); // Sends: "\x1b[10t"
 * ```
 */
declare const maximizeWindow: () => string;
/**
 * Report window position.
 * Response: `CSI 3 ; x ; y t`
 * `CSI 1 3 t`
 *
 * Requests a report of the terminal window's position on the screen.
 * The terminal responds with `CSI 3 ; x ; y t` where x and y are the window coordinates.
 * @returns The ANSI escape sequence to request window position.
 * @see xtermWindowOp
 * @see XTermWindowOp.REPORT_WINDOW_POSITION
 * @example
 * ```typescript
 * import { reportWindowPosition } from "@visulima/ansi";
 *
 * process.stdout.write(reportWindowPosition());
 * // Sends: "\x1b[13t"
 * // Expect response like: "\x1b[3;100;50t" if window is at position (100, 50)
 * ```
 */
declare const reportWindowPosition: () => string;
/**
 * Report window state.
 * Response: `CSI 1 t` if de-iconified, `CSI 2 t` if iconified.
 * (XTerm doc uses `CSI ? 1 t` and `CSI ? 2 t`, but general form `CSI Ps t` is also listed for 11)
 * `CSI 1 1 t`
 *
 * Requests a report of the terminal window's state (iconified/minimized or de-iconified/normal).
 * The terminal responds with `CSI 1 t` if de-iconified or `CSI 2 t` if iconified.
 * @returns The ANSI escape sequence to request window state.
 * @see xtermWindowOp
 * @see XTermWindowOp.REPORT_WINDOW_STATE
 * @example
 * ```typescript
 * import { reportWindowState } from "@visulima/ansi";
 *
 * process.stdout.write(reportWindowState());
 * // Sends: "\x1b[11t"
 * // Expect response: "\x1b[1t" (de-iconified) or "\x1b[2t" (iconified)
 * ```
 */
declare const reportWindowState: () => string;
/**
 * Set page size (DECSLPP - Set Lines Per Page), often used for resizing the screen.
 * `CSI Pl t` where Pl is the number of lines.
 * XTerm extends this to `CSI > lines ; width ; height t` where width/height are in pixels.
 * `CSI 24 ; lines t`
 * @param lines The number of lines for the page.
 * @returns The ANSI escape sequence to set page size.
 * @see xtermWindowOp
 * @see XTermWindowOp.RESIZE_SCREEN_AND_TEXT_AREA
 * @example
 * ```typescript
 * import { setPageSizeLines } from "@visulima/ansi";
 *
 * // Set page size to 30 lines
 * process.stdout.write(setPageSizeLines(30));
 * // Sends: "\x1b[24;30t"
 * ```
 */
declare const setPageSizeLines: (lines: number) => string;
export { XTWINOPS, XTermWindowOp, deiconifyWindow, iconifyWindow, lowerWindow, maximizeWindow, moveWindow, raiseWindow, refreshWindow, reportWindowPosition, reportWindowState, requestCellSizePixels, requestTextAreaSizeChars, requestTextAreaSizePixels, resizeTextAreaChars, resizeTextAreaPixels, restoreMaximizedWindow, setPageSizeLines, xtermWindowOp };
