import { DataTexture, UniformsGroup } from 'three';
export type Glyph = {
    position: [number, number];
    dimension: [number, number];
    offset: [number, number];
    spacing: number;
};
export type EncodedTextSegment = {
    indices: number[];
    width: number;
};
export type EncodedTextTexture = {
    texture: DataTexture;
    textPointersOffset: number;
    textPointersCount: number;
};
export type GlyphConfig = {
    glyphsCount: number;
    glyphData: UniformsGroup;
    encodeText: (text: string) => EncodedTextSegment;
    encodeTextTexture: (textSegments: string[] | string) => EncodedTextTexture;
    dispose: () => void;
};
export interface MsdfFontJson {
    info: {
        size: number;
    };
    common: {
        scaleW: number;
        scaleH: number;
        lineHeight: number;
        base: number;
    };
    chars: {
        id: number;
        index: number;
        char: string;
        width: number;
        height: number;
        xoffset: number;
        yoffset: number;
        xadvance: number;
        x: number;
        y: number;
    }[];
    distanceField: {
        distanceRange: number;
    };
}
export declare function createConfig(json: MsdfFontJson): GlyphConfig;
