/**
 * Font character data
 */
interface FontChar {
    id: number;
    x: number;
    y: number;
    width: number;
    height: number;
    xoffset: number;
    yoffset: number;
    xadvance: number;
    page?: number;
    char?: string;
}
/**
 * Glyph data with layout information
 */
export interface Glyph {
    position: [number, number];
    data: FontChar;
    index: number;
    linesTotal: number;
    lineIndex: number;
    lineLettersTotal: number;
    lineLetterIndex: number;
    lineWordsTotal: number;
    lineWordIndex: number;
    wordsTotal: number;
    wordIndex: number;
    lettersTotal: number;
    letterIndex: number;
}
/**
 * Text layout options
 */
export interface TextLayoutOptions {
    text: string;
    font: any;
    width?: number;
    align?: "left" | "center" | "right";
    letterSpacing?: number;
    tabSize?: number;
    lineHeight?: number;
    measure?: (text: string, start: number, end: number, width: number) => {
        start: number;
        end: number;
        width: number;
    };
}
/**
 * Text layout class for arranging glyphs
 */
export declare class TextLayout {
    glyphs: Glyph[];
    private _width;
    private _height;
    private _descender;
    private _ascender;
    private _xHeight;
    private _baseline;
    private _capHeight;
    private _lineHeight;
    private _linesTotal;
    private _lettersTotal;
    private _wordsTotal;
    private _options;
    private _fallbackSpaceGlyph;
    private _fallbackTabGlyph;
    constructor(options: TextLayoutOptions);
    get width(): number;
    get height(): number;
    get descender(): number;
    get ascender(): number;
    get xHeight(): number;
    get baseline(): number;
    get capHeight(): number;
    get lineHeight(): number;
    get linesTotal(): number;
    get lettersTotal(): number;
    get wordsTotal(): number;
    get glyphsArray(): Glyph[];
    /**
     * Updates the text layout with new options
     * @param options - Text layout configuration
     */
    update(options: TextLayoutOptions): void;
    /**
     * Gets a glyph by its character ID
     * @param font - Font data
     * @param id - Character ID
     * @returns Glyph data or null
     */
    private getGlyph;
    /**
     * Computes metrics for text layout
     */
    private computeMetrics;
    /**
     * Sets up fallback glyphs for space and tab
     */
    private _setupSpaceGlyphs;
}
/**
 * Creates a new text layout instance
 * @param options - Text layout configuration
 * @returns New TextLayout instance
 */
export declare function createLayout(options: TextLayoutOptions): TextLayout;
export {};
