import TinySDF from "parsegraph-sdf";
import { BasicWindow } from "parsegraph-window";
export declare const MAX_PAGE_WIDTH = 512;
export declare class GlyphPage {
    _id: number;
    _glyphTexture: {
        [id: string]: WebGLTexture;
    };
    _firstGlyph: GlyphData;
    _lastGlyph: GlyphData;
    next: GlyphPage;
    constructor(font: Font);
}
export declare class GlyphData {
    glyphPage: GlyphPage;
    x: number;
    y: number;
    width: number;
    height: number;
    ascent: number;
    descent: number;
    advance: number;
    radius: number;
    letter: string;
    length: number;
    painted: boolean;
    next: GlyphData;
    constructor(glyphPage: GlyphPage, glyph: string, x: number, y: number, width: number, height: number, ascent: number, descent: number, advance: number, radius: number);
}
export declare class FontWindow {
    _glTextureSize: number;
    _numGlyphs: number;
    _textureArray: Uint8Array;
    _window: BasicWindow;
    _font: Font;
    constructor(font: Font, window: BasicWindow);
    gl(): WebGLRenderingContext;
}
export default class Font {
    _id: number;
    _fontSize: number;
    _fontName: string;
    _fillStyle: string;
    _measureCanvas: HTMLCanvasElement;
    _measureCtx: CanvasRenderingContext2D;
    _windows: {
        [id: string]: FontWindow;
    };
    _renderCanvas: HTMLCanvasElement;
    _renderCtx: CanvasRenderingContext2D;
    _glyphData: {
        [id: string]: GlyphData;
    };
    _pages: GlyphPage[];
    _numGlyphs: number;
    _currentRowHeight: number;
    _padding: number;
    _x: number;
    _y: number;
    _maxPage: number;
    _sdf: TinySDF;
    constructor(fontSizePixels: number, fontName: string, fillStyle?: string);
    toString(): string;
    getGlyph(glyphOrCode: string | number): GlyphData;
    get(glyphOrCode: string | number): GlyphData;
    hasGlyph(glyph: string | number): boolean;
    has(glyph: string | number): boolean;
    contextChanged(isLost: boolean, window: BasicWindow): void;
    update(window: BasicWindow): void;
    dispose(window: BasicWindow): void;
    clear(): void;
    font(): string;
    pageTextureSize(): number;
    fontBaseline(): number;
    fontSize(): number;
    fullName(): string;
    fontName(): string;
    isNewline(c: string): boolean;
}
//# sourceMappingURL=Font.d.ts.map