# Generated by scripts/generate_pyi.py, do not edit.

from typing import Any, Callable

import renpy

import builtins as __builtins__
import renpy as renpy

class Glyph:

    def __reduce__(self): ...

    def __repr__(self, /): ...

    def __setstate__(self, __pyx_state): ...

    x: int
    y: int
    delta_x_adjustment: int
    character: int
    variation: int
    split: int
    ruby: int
    ascent: int
    descent: int
    line_spacing: int
    width: float
    advance: float
    time: float
    hyperlink: int
    draw: bool
    add_left: int
    add_top: int
    add_right: int
    add_bottom: int
    rtl: bool
    duration: float
    shader: 'renpy.text.shader.TextShader | None'
    index: 'short'

class Line:
    def __init__(self, /, *args, **kwargs): ...

    def __reduce__(self): ...

    def __repr__(self, /): ...

    def __setstate__(self, __pyx_state): ...

    y: int
    height: int
    baseline: int
    glyphs: 'list[Glyph]'
    max_time: float
    eop: bool

def adjust_glyph_spacing(glyphs: list, lines: list, dx: float, dy: float, w: float, h: float): ...

def align_and_justify(lines: list, width: int, text_align: float, justify: bool): ...

def annotate_anywhere(glyphs: list): ...

def annotate_unicode(glyphs: list, no_ideographs: bool, cjk: int): ...

def annotate_western(glyphs: list): ...

def assign_index(index, glyphs: list): ...

def assign_times(t: float, gps: float, glyphs: list): ...

def chr(i, /): ...

def copy_splits(source: list, dest: list): ...

def get_textshader_set(glyphs: list): ...

def hyperlink_areas(l: list): ...

def kerning(glyphs: list, amount: float): ...

def language_tailor(chars, cls): ...

def lenticular_bracket_ruby(s): ...

def linebreak_debug(glyphs: list): ...

def linebreak_greedy(glyphs: list, first_width: int, rest_width: int): ...

def linebreak_list(glyphs: list): ...

def linebreak_nobreak(glyphs: list): ...

def mark_altruby_top(l: list): ...

def mark_ruby_bottom(l: list): ...

def mark_ruby_top(l: list): ...

def max_times(l: list): ...

def move_glyphs(glyphs: list, x: int, y: int): ...

def place_horizontal(glyphs: list, start_x: float, first_indent: float, rest_indent: float): ...

def place_ruby(glyphs: list, ruby_offset: int, altruby_offset: int, surf_width: int, surf_height: int): ...

def place_vertical(glyphs: list, y: int, spacing: int, leading: int, ruby_line_leading: int): ...

def reverse_lines(glyphs: list): ...

def tokenize(s: str): ...

DISPLAYABLE: int
PARAGRAPH: int
TAG: int
TEXT: int
i: int
