/**
 * XTerm Key Modifier Options (XTMODKEYS).
 * Sets or resets XTerm key modifier resources.
 *
 * Sequence: `CSI > Pp m` (to reset resource Pp).
 * Sequence: `CSI > Pp ; Pv m` (to set resource Pp to value Pv).
 * @param resource The resource parameter (Pp), a non-negative integer.
 * @param value Optional. The value parameter (Pv), a non-negative integer. If omitted, the resource is reset.
 * If provided and not positive, it's treated as if omitted (resource is reset).
 * @returns The ANSI escape sequence.
 * @see {@link https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_}
 */
declare const keyModifierOptions: (resource: number, value?: number) => string;
/**
 * Alias for {@link keyModifierOptions}.
 * Provides a shorthand for setting or resetting XTerm key modifier resources.
 * @see keyModifierOptions
 */
declare const XTMODKEYS: (resource: number, value?: number) => string;
/**
 * Query XTerm Key Modifier Options (XTQMODKEYS).
 * Requests the current setting of an XTerm key modifier resource.
 *
 * Sequence: `CSI ? Pp m`
 * @param resource The resource parameter (Pp), a non-negative integer.
 * @returns The ANSI escape sequence.
 * @see {@link https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_}
 */
declare const queryKeyModifierOptions: (resource: number) => string;
/**
 * Resets an XTerm key modifier resource to its initial value.
 * This is an alias for `keyModifierOptions(resource)`.
 * @param resource The resource parameter (Pp).
 */
declare const resetKeyModifierOptions: (resource: number) => string;
/**
 * Sets an XTerm key modifier resource to a specific value.
 * This is a more explicit alias for `keyModifierOptions(resource, value)`.
 * @param resource The resource parameter (Pp).
 * @param value The value parameter (Pv).
 */
declare const setKeyModifierOptions: (resource: number, value: number) => string;
/** Alias for {@link queryKeyModifierOptions}. */
declare const XTQMODKEYS: (resource: number) => string;
/**
 * Set XTerm "modifyOtherKeys" mode to mode 1 (sends modified escape sequences for certain keys).
 * Sequence: `CSI > 4 ; 1 m`
 * @example
 * ```typescript
 * import { setModifyOtherKeys1 } from "@visulima/ansi";
 *
 * process.stdout.write(setModifyOtherKeys1);
 * // Sends: "\x1b[>4;1m"
 * ```
 */
declare const setModifyOtherKeys1: string;
/**
 * Set XTerm "modifyOtherKeys" mode to mode 2 (alternative modified escape sequences).
 * Sequence: `CSI > 4 ; 2 m`
 * @example
 * ```typescript
 * import { setModifyOtherKeys2 } from "@visulima/ansi";
 *
 * process.stdout.write(setModifyOtherKeys2);
 * // Sends: "\x1b[>4;2m"
 * ```
 */
declare const setModifyOtherKeys2: string;
/**
 * Reset XTerm "modifyOtherKeys" to its default behavior (mode 0 or initial value).
 * Sequence: `CSI > 4 m` (This effectively sets resource 4, value 0, or resets resource 4).
 * @example
 * ```typescript
 * import { resetModifyOtherKeys } from "@visulima/ansi";
 *
 * process.stdout.write(resetModifyOtherKeys);
 * // Sends: "\x1b[>4m"
 * ```
 */
declare const resetModifyOtherKeys: string;
/**
 * Query the current XTerm "modifyOtherKeys" mode.
 * Sequence: `CSI ? 4 m`
 * Response: `CSI > 4 ; Ps m` where Ps is 0, 1, or 2.
 * @example
 * ```typescript
 * import { queryModifyOtherKeys } from "@visulima/ansi";
 *
 * process.stdout.write(queryModifyOtherKeys);
 * // Sends: "\x1b[?4m"
 * // Expect a response like: "\x1b[>4;1m" if mode 1 is set.
 * ```
 */
declare const queryModifyOtherKeys: string;
/**
 * Bit flags for the Kitty keyboard protocol progressive-enhancement level.
 *
 * Combine members with bitwise OR to request multiple enhancements at once.
 * @see {@link https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement}
 */
declare const KittyKeyboardFlag: {
  /** Disambiguate escape codes so modifier+key combos are unambiguous. */
  readonly DisambiguateEscapeCodes: 1;
  /** Report all keys as escape codes (so e.g. Enter/Tab/Backspace are reported uniformly). */
  readonly ReportAllKeysAsEscapeCodes: 16;
  /** Report alternate keys (e.g. shifted layout keys and the base layout key). */
  readonly ReportAlternateKeys: 8;
  /** Embed the text the key would produce in the escape code. */
  readonly ReportAssociatedText: 4;
  /** Add event-type data, enabling key-release (and repeat) reporting. */
  readonly ReportEventTypes: 2;
};
/**
 * A Kitty keyboard protocol flag value: a bitwise OR of {@link KittyKeyboardFlag}
 * members (range `0`-`31`).
 */
type KittyKeyboardFlags = number;
/**
 * Pushes a new set of Kitty keyboard protocol flags onto the terminal's stack.
 *
 * Sequence: `CSI > flags u`
 * @param flags Bitwise OR of {@link KittyKeyboardFlag} values. Defaults to {@link KittyKeyboardFlag.DisambiguateEscapeCodes}.
 * @returns The escape sequence enabling the requested enhancement level.
 * @example
 * ```typescript
 * import { pushKittyKeyboard, KittyKeyboardFlag as Flag } from "@visulima/ansi/xterm";
 *
 * const flags = Flag.DisambiguateEscapeCodes | Flag.ReportEventTypes;
 *
 * process.stdout.write(pushKittyKeyboard(flags));
 * ```
 * @see {@link https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement}
 */
declare const pushKittyKeyboard: (flags?: KittyKeyboardFlags) => string;
/**
 * Pops one or more entries from the terminal's Kitty keyboard protocol flag stack,
 * restoring the previous enhancement level. Call this on exit to undo {@link pushKittyKeyboard}.
 *
 * Sequence: `CSI < number u`
 * @param count How many stack entries to pop. Defaults to `1`.
 * @returns The escape sequence popping the stack.
 * @example
 * ```typescript
 * import { popKittyKeyboard } from "@visulima/ansi/xterm";
 *
 * process.stdout.write(popKittyKeyboard());
 * ```
 * @see {@link https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement}
 */
declare const popKittyKeyboard: (count?: number) => string;
/**
 * Sets the Kitty keyboard protocol flags, replacing the current top-of-stack
 * entry (mode `1`) rather than pushing a new one.
 *
 * Sequence: `CSI = flags ; 1 u`
 * @param flags Bitwise OR of {@link KittyKeyboardFlag} values.
 * @returns The escape sequence setting the flags.
 * @see {@link https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement}
 */
declare const setKittyKeyboard: (flags?: KittyKeyboardFlags) => string;
/**
 * Queries the terminal's current Kitty keyboard protocol flags.
 *
 * Sequence: `CSI ? u`
 * Response: `CSI ? flags u`.
 * @returns The query escape sequence.
 * @example
 * ```typescript
 * import { queryKittyKeyboard } from "@visulima/ansi/xterm";
 *
 * process.stdout.write(queryKittyKeyboard);
 * // Expect a response like: "\x1b[?1u"
 * ```
 * @see {@link https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement}
 */
declare const queryKittyKeyboard: string;
export { KittyKeyboardFlag, KittyKeyboardFlags, XTMODKEYS, XTQMODKEYS, keyModifierOptions, popKittyKeyboard, pushKittyKeyboard, queryKeyModifierOptions, queryKittyKeyboard, queryModifyOtherKeys, resetKeyModifierOptions, resetModifyOtherKeys, setKeyModifierOptions, setKittyKeyboard, setModifyOtherKeys1, setModifyOtherKeys2 };
