import { CharNode } from "../models";
/**
 * Utility functions for working with character nodes.
 */
/**
 * Generate character nodes from a string.
 * Each character gets a node with a sequential ID starting from 1.
 *
 * @param text - The text to convert to nodes
 * @returns Array of character nodes
 */
export declare function stringToNodes(text: string): CharNode[];
/**
 * Get a label for a character node suitable for display.
 * Uses special symbols for whitespace characters.
 */
export declare function getNodeLabel(node: CharNode): string;
/**
 * Check if a node represents a line break.
 */
export declare function isLineBreak(node: CharNode): boolean;
/**
 * Check if a node represents a space.
 */
export declare function isSpace(node: CharNode): boolean;
/**
 * Check if a node is printable (not a space or line break).
 */
export declare function isPrintable(node: CharNode): boolean;
/**
 * Find a node by ID in an array of nodes.
 */
export declare function findNodeById(nodes: CharNode[], id: number): CharNode | undefined;
/**
 * Get a range of nodes starting from a specific node ID.
 * Used for processing displaced spans (IDxN format).
 *
 * @param nodes - All available nodes
 * @param startId - Starting node ID
 * @param count - Number of nodes to include
 * @returns Array of nodes in the span, or empty array if not found
 */
export declare function getNodeSpan(nodes: CharNode[], startId: number, count: number): CharNode[];
/**
 * Get nodes by their IDs.
 */
export declare function getNodesByIds(nodes: CharNode[], ids: number[]): CharNode[];
