import { IEncodeFeature, IModel, IModelUniform } from '@antv/l7-core';
import BaseModel from '../../core/BaseModel';
import { IGlyphQuad } from '../../utils/symbol-layout';
export declare function TextTriangulation(feature: IEncodeFeature): {
    vertices: number[];
    indices: number[];
    size: number;
};
export default class TextModel extends BaseModel {
    glyphInfo: IEncodeFeature[];
    glyphInfoMap: {
        [key: string]: {
            shaping: any;
            glyphQuads: IGlyphQuad[];
            centroid: number[];
        };
    };
    private texture;
    private currentZoom;
    private extent;
    private textureHeight;
    private textCount;
    private preTextStyle;
    getUninforms(): IModelUniform;
    initModels(): IModel[];
    buildModels: () => IModel[];
    needUpdate(): boolean;
    clearModels(): void;
    protected registerBuiltinAttributes(): void;
    private textExtent;
    /**
     * 生成文字纹理（生成文字纹理字典）
     */
    private initTextFont;
    /**
     * 生成 iconfont 纹理字典
     */
    private initIconFontTex;
    /**
     * 生成文字布局（对照文字纹理字典提取对应文字的位置很好信息）
     */
    private generateGlyphLayout;
    /**
     * 文字避让 depend on originCentorid
     */
    private filterGlyphs;
    /**
     * 初始化文字布局
     */
    private initGlyph;
    /**
     * 更新文字纹理
     */
    private updateTexture;
    private reBuildModel;
}
