/// @module std::core::unicode
/// Unicode Text Processing
///
/// Utilities for Unicode normalization, category detection,
/// and grapheme cluster segmentation.
///
/// # Example
///
/// ```shape
/// use std::core::unicode
///
/// let normalized = unicode.normalize("e\u0301", "NFC")
/// let clusters = unicode.graphemes("hello")
/// ```
/// Normalize a Unicode string to the specified form.
///
/// # Arguments
///
/// * `text` - Text to normalize
/// * `form` - Normalization form: "NFC", "NFD", "NFKC", or "NFKD"
///
/// # Returns
///
/// The normalized string.
pub builtin fn normalize(text: string, form: string) -> string;
/// Get the Unicode general category of a codepoint.
///
/// # Arguments
///
/// * `codepoint` - Unicode codepoint (e.g., 65 for 'A')
///
/// # Returns
///
/// Category abbreviation (e.g. "Lu", "Ll", "Nd").
pub builtin fn category(codepoint: int) -> string;
/// Check if the first character is a Unicode letter.
///
/// # Arguments
///
/// * `char` - Single character string to check
///
/// # Returns
///
/// `true` if the first character is alphabetic.
pub builtin fn is_letter(char: string) -> bool;
/// Check if the first character is a Unicode digit.
///
/// # Arguments
///
/// * `char` - Single character string to check
///
/// # Returns
///
/// `true` if the first character is numeric.
pub builtin fn is_digit(char: string) -> bool;
/// Split a string into Unicode grapheme clusters.
///
/// # Arguments
///
/// * `text` - Text to split into grapheme clusters
///
/// # Returns
///
/// Array of grapheme cluster strings.
pub builtin fn graphemes(text: string) -> Array<string>;