import Rect from "parsegraph-rect";
import Font, { GlyphData } from "./Font";
import GlyphPainter from "./GlyphPainter";
export declare class GlyphIterator {
    font: Font;
    index: number;
    len: number;
    prevLetter: number;
    text: string;
    constructor(font: Font, text: string);
    next(): GlyphData;
}
export declare class Line {
    _label: Label;
    _glyphs: GlyphData[];
    _width: number;
    _height: number;
    _text: string;
    _linePos: number;
    constructor(label: Label, text?: string);
    isEmpty(): boolean;
    font(): Font;
    remove(pos: number, count: number): void;
    appendText(text: string): void;
    insertText(pos: number, text: string): void;
    length(): number;
    glyphCount(counts: {
        [id: number]: number;
    }, pagesPerTexture: number): number;
    getText(): string;
    text(): string;
    linePos(): number;
    label(): Label;
    width(): number;
    height(): number;
    posAt(limit: number): number;
    glyphs(): GlyphData[];
    drawLTRGlyphRun(painter: GlyphPainter, worldX: number, worldY: number, pos: any[], fontScale: number, startRun: number, endRun: number): void;
    drawRTLGlyphRun(painter: GlyphPainter, worldX: number, worldY: number, pos: any[], fontScale: number, startRun: number, endRun: number): void;
    drawGlyphRun(painter: GlyphPainter, worldX: number, worldY: number, pos: any[], fontScale: number, startRun: number, endRun: number): void;
    paint(painter: GlyphPainter, worldX: number, worldY: number, pos: any[], fontScale: number): void;
}
export default class Label {
    _font: Font;
    _wrapWidth: number;
    _lines: Line[];
    _caretLine: number;
    _caretPos: number;
    _editable: boolean;
    _onTextChangedListener: Function;
    _onTextChangedListenerThisArg: object;
    _width: number;
    _height: number;
    _x: number;
    _y: number;
    _scale: number;
    _currentPos: number;
    _currentLine: number;
    constructor(font: Font);
    font(): Font;
    isEmpty(): boolean;
    forEach(func: Function, funcThisArg?: any): void;
    getText(): string;
    text(): string;
    clear(): void;
    length(): number;
    glyphCount(counts: {
        [id: number]: number;
    }, pagesPerTexture: number): number;
    setText(text: any): void;
    moveCaretDown(): void;
    moveCaretUp(): void;
    moveCaretBackward(): boolean;
    moveCaretForward(): boolean;
    backspaceCaret(): boolean;
    deleteCaret(): boolean;
    ctrlKey(key: string): boolean;
    key(key: string): boolean | void;
    onTextChanged(listener: Function, listenerThisArg: object): void;
    textChanged(): any;
    editable(): boolean;
    setEditable(editable: boolean): void;
    click(x: number, y: number): void;
    lineAt(n: number): Line;
    caretLine(): number;
    caretPos(): number;
    getCaretRect(outRect?: Rect): Rect;
    glyphPos(): number;
    fontSize(): number;
    width(): number;
    height(): number;
    paint(painter: GlyphPainter, worldX: number, worldY: number, fontScale: number): void;
}
//# sourceMappingURL=Label.d.ts.map