import { _TrueTypeTableInfo, _TrueTypeHorizontalHeaderTable, _TrueTypeNameTable, _TrueTypeHeadTable, _TrueTypeOS2Table, _TrueTypePostTable, _TrueTypeCmapSubTable } from './ttf-table';
import { Dictionary } from '../pdf-primitives';
import { _TrueTypeCmapEncoding } from '../../core/enumerator';
/**
 * Reads and parses truetype and opentype font data into accessible tables and metrics.
 *
 * @private
 */
export declare class _TrueTypeReader {
    /**
     * Raw TrueType font data.
     *
     * @private
     */
    _fontData: Uint8Array;
    /**
     * Size (in bytes) of a 32-bit integer.
     *
     * @private
     */
    readonly _int32Size: number;
    /**
     * Current offset within the font data.
     *
     * @private
     */
    _offset: number;
    /**
     * Table directory mapping table names to offsets and sizes.
     *
     * @private
     */
    _tableDirectory: Dictionary<string, _TrueTypeTableInfo>;
    /**
     * Indicates whether the provided data represents a TrueType font.
     *
     * @private
     */
    _isFont: boolean;
    /**
     * Indicates whether the font uses Macintosh-specific structures.
     *
     * @private
     */
    _isMacTtf: boolean;
    /**
     * Lowest encountered table position used for validation.
     *
     * @private
     */
    _lowestPosition: number;
    /**
     * Extracted TrueType metrics.
     *
     * @private
     */
    _metrics: _TrueTypeMetrics;
    /**
     * Maximum glyph index used for Macintosh cmap.
     *
     * @private
     */
    _maxMacIndex: number;
    /**
     * Indicates whether the font resource is present.
     *
     * @private
     */
    _isFontPresent: boolean;
    /**
     * Indicates whether the font is a Macintosh font.
     *
     * @private
     */
    _isMacFont: boolean;
    /**
     * Tracks the lowest code point missing from the glyph set.
     *
     * @private
     */
    _missedGlyphs: number;
    /**
     * List of required TrueType table names.
     *
     * @private
     */
    _tableNames: string[];
    /**
     * Entry selector values used to build the search tree.
     *
     * @private
     */
    _entrySelectors: number[];
    /**
     * Glyph advance width array indexed by glyph ID.
     *
     * @private
     */
    _width: number[];
    /**
     * Indicates whether the 'loca' table uses short format.
     *
     * @private
     */
    _bIsLocaShort: boolean;
    /**
     * Dictionary of glyphs for Macintosh encoding.
     *
     * @private
     */
    _macintoshDictionary: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Dictionary of glyphs for Microsoft encoding.
     *
     * @private
     */
    _microsoftDictionary: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Internal cache of Macintosh glyphs.
     *
     * @private
     */
    _internalMacintoshGlyphs: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Internal cache of Microsoft glyphs.
     *
     * @private
     */
    _internalMicrosoftGlyphs: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Indicates whether the font is OpenType flavored.
     *
     * @private
     */
    _isOpenType: boolean;
    readonly macintosh: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Gets the internal microsoft glyph index mapping used for unicode mode.
     *
     * @private
     * @returns {Dictionary<number, _TrueTypeGlyph>} Microsoft glyph dictionary.
     */
    readonly _microsoft: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Gets the internal subset glyph map for macintosh indices.
     *
     * @private
     * @returns {Dictionary<number, _TrueTypeGlyph>} Microsoft glyph dictionary.
     */
    readonly _macintoshGlyphs: Dictionary<number, _TrueTypeGlyph>;
    /**
     * Gets the internal subset glyph map for microsoft indices.
     *
     * @private
     * @returns {Dictionary<number, _TrueTypeGlyph>} Internal microsoft glyphs map.
     */
    readonly _microsoftGlyphs: Dictionary<number, _TrueTypeGlyph>;
    constructor(fontData: Uint8Array);
    /**
     * Initializes internal metrics, reads core tables, and sets basic font properties.
     *
     * @private
     * @returns {void} nothing.
     */
    _initialize(): void;
    /**
     * Reads the table directory and builds the internal table map from the font data.
     *
     * @private
     * @returns {void} nothing.
     */
    _readFontDictionary(): void;
    /**
     * Normalizes table offsets when the directory is not at the expected position.
     *
     * @private
     * @returns {void} nothing.
     */
    _fixOffsets(): void;
    /**
     * Checks the font container header and detects truetype collection and opentype signatures.
     *
     * @private
     * @returns {number} The sfnt version value.
     * @throws {Error} When the data is not a valid TTC/TTF.
     */
    _check(): number;
    /**
     * Reads the name table and collects naming records for the font.
     *
     * @private
     * @returns {_TrueTypeNameTable} The parsed name table.
     */
    _readNameTable(): _TrueTypeNameTable;
    /**
     * Reads the head table and extracts global font header values.
     *
     * @private
     * @returns {_TrueTypeHeadTable} The parsed head table.
     */
    _readHeadTable(): _TrueTypeHeadTable;
    /**
     * Reads the horizontal header table and extracts ascender descender and metrics info.
     *
     * @private
     * @returns {_TrueTypeHorizontalHeaderTable} The parsed horizontal header table.
     */
    _readHorizontalHeaderTable(): _TrueTypeHorizontalHeaderTable;
    /**
     * Reads the os two table and extracts typographic and character range data.
     *
     * @private
     * @returns {_TrueTypeOS2Table} The parsed OS/2 table.
     */
    _readOS2Table(): _TrueTypeOS2Table;
    /**
     * Reads the post table and extracts italic angle fixed pitch and related fields.
     *
     * @private
     * @returns {_TrueTypePostTable} The parsed post table.
     */
    _readPostTable(): _TrueTypePostTable;
    /**
     * Reads the horizontal metrics table and computes glyph advance widths in font units.
     * Reads the horizontal metrics table and computes glyph advance widths in font units.
     *
     * @private
     * @param {number} glyphCount - Number of horizontal metrics (hMetrics) to read.
     * @param {number} unitsPerEm - Units per em from the head table.
     * @returns {number[]} An array of glyph widths in 1000 UPM space.
     */
    _readWidthTable(glyphCount: number, unitsPerEm: number): number[];
    /**
     * Reads the cmap table and loads subtable descriptors for character to glyph mapping.
     *
     * @private
     * @returns {_TrueTypeCmapSubTable[]} An array of parsed cmap subtables.
     */
    _readCmapTable(): _TrueTypeCmapSubTable[];
    /**
     * Reads a cmap subtable and dispatches to the specific format handler based on encoding.
     *
     * @private
     * @param {_TrueTypeCmapSubTable} subTable - The subtable descriptor to populate.
     * @returns {void} nothing.
     */
    _readCmapSubTable(subTable: _TrueTypeCmapSubTable): void;
    /**
     * Parses the apple cmap format and registers macintosh glyph mappings and widths.
     *
     * @private
     * @param {_TrueTypeCmapSubTable} subTable - The cmap subtable descriptor.
     * @param {_TrueTypeCmapEncoding} encoding - Resolved cmap encoding.
     * @returns {void} nothing.
     */
    _readAppleCmapTable(subTable: _TrueTypeCmapSubTable, encoding: _TrueTypeCmapEncoding): void;
    /**
     * Parses the microsoft cmap format and registers unicode or symbol glyph mappings and widths.
     *
     * @private
     * @param {_TrueTypeCmapSubTable} subTable - The cmap subtable descriptor.
     * @param {_TrueTypeCmapEncoding} encoding - Resolved cmap encoding.
     * @returns {void} nothing.
     */
    _readMicrosoftCmapTable(subTable: _TrueTypeCmapSubTable, encoding: _TrueTypeCmapEncoding): void;
    /**
     * Parses the trimmed cmap format and registers a compact range of macintosh glyphs.
     *
     * @private
     * @param {_TrueTypeCmapSubTable} subTable - The cmap subtable descriptor.
     * @param {_TrueTypeCmapEncoding} encoding - Resolved cmap encoding.
     * @returns {void} nothing.
     */
    _readTrimmedCmapTable(subTable: _TrueTypeCmapSubTable, encoding: _TrueTypeCmapEncoding): void;
    /**
     * Reads the compact font format raw bytes when present in the font.
     *
     * @private
     * @returns {number[]} Raw CFF bytes.
     */
    _readCompactFontFormatTable(): number[];
    /**
     * Initializes human readable font names from the name table records.
     *
     * @private
     * @param {_TrueTypeNameTable} nameTable - The name table to extract names from.
     * @returns {void} nothing.
     */
    _initializeFontName(nameTable: _TrueTypeNameTable): void;
    /**
     * Retrieves table information by name from the directory.
     *
     * @private
     * @param {string} name - The sfnt table tag (e.g., 'head', 'cmap').
     * @returns {_TrueTypeTableInfo} The table info entry.
     */
    _getTable(name: string): _TrueTypeTableInfo;
    /**
     * Gets the width value for the specified glyph index with bounds protection.
     *
     * @private
     * @param {number} glyphCode - Glyph index.
     * @returns {number} The width for the glyph index.
     */
    _getWidth(glyphCode: number): number;
    /**
     * Resolves the cmap encoding type from platform and encoding identifiers.
     *
     * @private
     * @param {number} platformID - Platform ID (e.g., Microsoft/Macintosh).
     * @param {number} encodingID - Encoding ID based on platform.
     * @returns {_TrueTypeCmapEncoding} The resolved cmap encoding.
     */
    _getCmapEncoding(platformID: number, encodingID: number): _TrueTypeCmapEncoding;
    /**
     * Adds a glyph mapping to the internal collection for the active encoding.
     *
     * @private
     * @param {_TrueTypeGlyph} glyph - Glyph data to add.
     * @param {_TrueTypeCmapEncoding} encoding - Encoding bucket to target.
     * @returns {void} nothing.
     */
    _addGlyph(glyph: _TrueTypeGlyph, encoding: _TrueTypeCmapEncoding): void;
    /**
     * Populates metrics values using multiple tables and computes scaled dimensions.
     *
     * @private
     * @param {_TrueTypeNameTable} nameTable - Name table.
     * @param {_TrueTypeHeadTable} headTable - Head table.
     * @param {_TrueTypeHorizontalHeaderTable} horizontalHeadTable - Horizontal header.
     * @param {_TrueTypeOS2Table} os2Table - OS/2 table.
     * @param {_TrueTypePostTable} postTable - Post table.
     * @param {_TrueTypeCmapSubTable[]} cmapTables - Parsed cmap subtables.
     * @returns {void} nothing.
     */
    _initializeMetrics(nameTable: _TrueTypeNameTable, headTable: _TrueTypeHeadTable, horizontalHeadTable: _TrueTypeHorizontalHeaderTable, os2Table: _TrueTypeOS2Table, postTable: _TrueTypePostTable, cmapTables: _TrueTypeCmapSubTable[]): void;
    /**
     * Builds a width table for the first two hundred and fifty six codes using glyph lookup.
     *
     * @private
     * @returns {number[]} The width table for codes 0–255.
     */
    _updateWidth(): number[];
    /**
     * Returns the default glyph used when a mapping is missing.
     *
     * @private
     * @returns {_TrueTypeGlyph} The default (whitespace) glyph entry.
     */
    _getDefaultGlyph(): _TrueTypeGlyph;
    /**
     * Converts a sequence of bytes to a string using simple code point mapping.
     *
     * @private
     * @param {number[]} byteToProcess - Bytes to convert.
     * @param {number} start - Start index within the array.
     * @param {number} length - Number of bytes to process.
     * @returns {string} The resulting string.
     */
    _getString(byteToProcess: number[], start: number, length: number): string;
    /**
     * Sets the current read offset within the font data stream.
     *
     * @private
     * @param {number} offset - New absolute offset.
     * @returns {void} nothing.
     */
    _setOffset(offset: number): void;
    /**
     * Produces a subset font program for the provided characters and returns raw bytes.
     *
     * @private
     * @param {Dictionary<string, string>} chars - Set of characters to include in subset.
     * @returns {number[]} The raw subset font program bytes.
     */
    _readFontProgram(chars: Dictionary<string, string>): number[];
    /**
     * Assembles a new glyf table and a new loca table for the subset glyph set.
     *
     * @private
     * @param {Dictionary<number, number>} glyphChars - Glyph indices to include.
     * @param {_TrueTypeLocaTable} locaTable - Source loca table.
     * @param {number[]} newLocaTable - Output loca table buffer (ignored on input).
     * @param {number[]} newGlyphTable - Output glyf table buffer (ignored on input).
     * @returns {{ glyphTableSize: number, newLocaTable: number[], newGlyphTable: number[] }} Sizes and buffers.
     */
    _generateGlyphTable(glyphChars: Dictionary<number, number>, locaTable: _TrueTypeLocaTable, newLocaTable: number[], newGlyphTable: number[]): {
        glyphTableSize: number;
        newLocaTable: number[];
        newGlyphTable: number[];
    };
    /**
     * Reads the loca table and returns glyph offsets in long or short form.
     *
     * @private
     * @param {boolean} bShort - When `true`, read short (uint16*2) offsets; otherwise long (uint32).
     * @returns {_TrueTypeLocaTable} The parsed loca table.
     */
    _readLocaTable(bShort: boolean): _TrueTypeLocaTable;
    /**
     * Ensures the subset includes required composite glyph components.
     *
     * @private
     * @param {Dictionary<number, number>} glyphChars - The current glyph set for subsetting.
     * @param {_TrueTypeLocaTable} locaTable - The source loca table.
     * @returns {void} nothing.
     */
    _updateGlyphChars(glyphChars: Dictionary<number, number>, locaTable: _TrueTypeLocaTable): void;
    /**
     * Processes a composite glyph and adds referenced child glyphs to the subset list.
     *
     * @private
     * @param {Dictionary<number, number>} glyphChars - The glyph set being built.
     * @param {number} glyph - The glyph index to process.
     * @param {_TrueTypeLocaTable} locaTable - Source loca table.
     * @returns {void} nothing.
     */
    _processCompositeGlyph(glyphChars: Dictionary<number, number>, glyph: number, locaTable: _TrueTypeLocaTable): void;
    /**
     * Encodes the new loca table in short or long form and returns the byte array.
     *
     * @private
     * @param {number[]} newLocaTable - Raw absolute offsets to encode.
     * @param {boolean} bLocaIsShort - Whether to write short form.
     * @returns {{ newLocaUpdated: number[], newLocaSize: number }} Encoded table bytes and logical size.
     */
    _updateLocaTable(newLocaTable: number[], bLocaIsShort: boolean): {
        newLocaUpdated: number[];
        newLocaSize: number;
    };
    /**
     * Aligns a byte count to a four byte boundary.
     *
     * @private
     * @param {number} value - Byte count to align.
     * @returns {number} The aligned byte count.
     */
    _align(value: number): number;
    /**
     * Builds the final font program header, tables, checksums and data sections.
     *
     * @private
     * @param {number[]} newLocaTableOut - Encoded loca table bytes.
     * @param {number[]} newGlyphTable - Encoded glyf table bytes.
     * @param {number} glyphTableSize - Logical glyf table size.
     * @param {number} locaTableSize - Logical loca table size.
     * @returns {number[]} The final subset font program bytes.
     */
    _getFontProgram(newLocaTableOut: number[], newGlyphTable: number[], glyphTableSize: number, locaTableSize: number): number[];
    /**
     * Computes the total font program length and the number of included tables.
     *
     * @private
     * @param {number[]} newLocaTableOut - Encoded loca table.
     * @param {number[]} newGlyphTable - Encoded glyf table.
     * @param {number} table - Initial table count (ignored).
     * @returns {{ fontProgramLength: number, table: number }} Total length and table count.
     */
    _getFontProgramLength(newLocaTableOut: number[], newGlyphTable: number[], table: number): {
        fontProgramLength: number;
        table: number;
    };
    /**
     * Creates a mapping from glyph indices to source characters for subsetting.
     *
     * @private
     * @param {Dictionary<string, string>} chars - Character set to map.
     * @returns {Dictionary<number, number>} Map of glyph index to Unicode code point.
     */
    _getGlyphChars(chars: Dictionary<string, string>): Dictionary<number, number>;
    /**
     * Writes table directory entries with checksums, offsets and lengths.
     *
     * @private
     * @param {_BigEndianWriter} writer - Writer to receive table directory.
     * @param {number} table - Total table count.
     * @param {number[]} newLocaTableOut - Encoded loca table bytes.
     * @param {number[]} newGlyphTable - Encoded glyf table bytes.
     * @param {number} glyphTableSize - Logical glyf table size.
     * @param {number} locaTableSize - Logical loca table size.
     * @returns {void} nothing.
     */
    _writeCheckSums(writer: _BigEndianWriter, table: number, newLocaTableOut: number[], newGlyphTable: number[], glyphTableSize: number, locaTableSize: number): void;
    /**
     * Calculates a big endian checksum for a byte array.
     *
     * @private
     * @param {number[]} bytes - Bytes for checksum.
     * @returns {number} The checksum value.
     */
    _calculateCheckSum(bytes: number[]): number;
    /**
     * Writes all included tables into the output font program in canonical order.
     *
     * @private
     * @param {_BigEndianWriter} writer - Destination writer.
     * @param {number[]} newLocaTable - Encoded loca table bytes.
     * @param {number[]} newGlyphTable - Encoded glyf table bytes.
     * @returns {void} nothing.
     */
    _writeGlyphs(writer: _BigEndianWriter, newLocaTable: number[], newGlyphTable: number[]): void;
    /**
     * Reads a range of bytes from the font data into the provided buffer.
     *
     * @private
     * @param {number[]} buffer - Destination buffer to fill.
     * @param {number} index - Start index in destination buffer.
     * @param {number} count - Number of bytes to read.
     * @returns {{ buffer: number[], written: number }} The buffer and bytes written.
     */
    _read(buffer: number[], index: number, count: number): {
        buffer: number[];
        written: number;
    };
    /**
     * Creates all reader internals by loading required tables and computing metrics.
     *
     * @private
     * @returns {void} nothing.
     */
    _createInternals(): void;
    /**
     * Resolves a glyph either by numeric code or by character using active encodings.
     *
     * @private
     * @param {string} charCode - Character to resolve (overload).
     * @returns {_TrueTypeGlyph} The glyph entry.
     */
    _getGlyph(charCode: string): _TrueTypeGlyph;
    _getGlyph(charCode: number): _TrueTypeGlyph;
    /**
     * Reads a string as latin or as unicode by stepping over high bytes.
     *
     * @private
     * @param {number} length - Number of bytes to read.
     * @returns {string} The decoded string.
     */
    _readString(length: number): string;
    _readString(length: number, isUnicode: boolean): string;
    /**
     * Reads a fixed number value with integer and fractional parts.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The fixed-point value.
     */
    _readFixed(offset: number): number;
    /**
     * Reads a signed thirty two bit integer in big endian order.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The signed 32-bit value.
     */
    _readInt32(offset: number): number;
    /**
     * Reads an unsigned thirty two bit integer in big endian order.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The unsigned 32-bit value.
     */
    _readUInt32(offset: number): number;
    /**
     * Reads a signed sixteen bit integer in big endian order with sign correction.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The signed 16-bit value.
     */
    _readInt16(offset: number): number;
    /**
     * Reads a signed sixty four bit integer composed from two big endian words.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The signed 64-bit value (as JS number).
     */
    _readInt64(offset: number): number;
    /**
     * Reads an unsigned sixteen bit integer in big endian order.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The unsigned 16-bit value.
     */
    _readUInt16(offset: number): number;
    /**
     * Reads an array of unsigned sixteen bit integers of the given length.
     *
     * @private
     * @param {number} length - Number of entries to read.
     * @returns {number[]} The array of uint16 values.
     */
    _readUShortArray(length: number): number[];
    /**
     * Reads a sequence of bytes from the current offset and advances the cursor.
     *
     * @private
     * @param {number} length - Number of bytes to read.
     * @returns {number[]} The array of bytes read.
     */
    _readBytes(length: number): number[];
    /**
     * Reads a single byte at the given offset and advances the cursor by one.
     *
     * @private
     * @param {number} offset - Offset to read from.
     * @returns {number} The byte value.
     */
    _readByte(offset: number): number;
    /**
     * Returns the width for a character using glyph mapping and default fallback.
     *
     * @private
     * @param {string} code - Character whose width is requested.
     * @returns {number} The character width.
     */
    _getCharacterWidth(code: string): number;
    /**
     * Converts a text string to a glyph index string using current mappings.
     *
     * @private
     * @param {string} text - Text to convert.
     * @returns {string} A string where each char is the mapped glyph index.
     */
    _convertString(text: string): string;
}
/**
 * Holds a single name record entry from the name table.
 *
 * @private
 */
export declare class _TrueTypeNameRecord {
    /**
     * Platform identifier (e.g., Macintosh, Microsoft).
     *
     * @private
     */
    _platformID: number;
    /**
     * Platform-specific encoding identifier.
     *
     * @private
     */
    _encodingID: number;
    /**
     * Language identifier code.
     *
     * @private
     */
    _languageID: number;
    /**
     * Name record identifier.
     *
     * @private
     */
    _nameID: number;
    /**
     * Length of the name string in bytes.
     *
     * @private
     */
    _length: number;
    /**
     * Offset to the name string within the storage area.
     *
     * @private
     */
    _offset: number;
    /**
     * Decoded name string value.
     *
     * @private
     */
    _name: string;
}
/**
 * Stores computed truetype metrics including ascents descents widths and box data.
 *
 * @private
 */
export declare class _TrueTypeMetrics {
    /**
     * Gap between lines added to ascent and descent.
     *
     * @private
     */
    _lineGap: number;
    /**
     * Indicates whether the font contains the requested character.
     *
     * @private
     */
    _contains: boolean;
    /**
     * Indicates whether the font is a symbol font.
     *
     * @private
     */
    _isSymbol: boolean;
    /**
     * Indicates whether the font is fixed pitch.
     *
     * @private
     */
    _isFixedPitch: boolean;
    /**
     * Italic angle of the font in degrees.
     *
     * @private
     */
    _italicAngle: number;
    /**
     * PostScript name of the font.
     *
     * @private
     */
    _postScriptName: string;
    /**
     * Font family name.
     *
     * @private
     */
    _fontFamily: string;
    /**
     * Cap height value of the font.
     *
     * @private
     */
    _capHeight: number;
    /**
     * Leading (line spacing) value.
     *
     * @private
     */
    _leading: number;
    /**
     * Macintosh ascent metric.
     *
     * @private
     */
    _macAscent: number;
    /**
     * Macintosh descent metric.
     *
     * @private
     */
    _macDescent: number;
    /**
     * Windows descent metric.
     *
     * @private
     */
    _winDescent: number;
    /**
     * Windows ascent metric.
     *
     * @private
     */
    _winAscent: number;
    /**
     * Stem thickness value (vertical).
     *
     * @private
     */
    _stemV: number;
    /**
     * Table of glyph advance widths.
     *
     * @private
     */
    _widthTable: number[];
    /**
     * Macintosh style flags.
     *
     * @private
     */
    _macStyle: number;
    /**
     * Subscript size scale factor.
     *
     * @private
     */
    _subScriptSizeFactor: number;
    /**
     * Superscript size scale factor.
     *
     * @private
     */
    _superscriptSizeFactor: number;
    /**
     * Font bounding box values [xMin, yMin, xMax, yMax].
     *
     * @private
     */
    _fontBox: number[];
    /**
     * Indicates whether the font style includes italic according to mac style flags.
     *
     * @private
     * @returns {boolean} `true` if italic; otherwise `false`.
     */
    readonly _isItalic: boolean;
    /**
     * Indicates whether the font style includes bold according to mac style flags.
     *
     * @private
     * @returns {boolean} `true` if bold; otherwise `false`
     */
    readonly _isBold: boolean;
}
/**
 * Represents an entry of the horizontal metrics table with advance width and side bearing.
 *
 * @private
 */
export declare class _TrueTypeLongHorMetric {
    /**
     * Advance width for the glyph.
     *
     * @private
     */
    _advanceWidth: number;
    /**
     * Left side bearing value.
     *
     * @private
     */
    _lsb: number;
}
/**
 * Represents a glyph mapping with index width and source character code.
 *
 * @private
 */
export declare class _TrueTypeGlyph {
    /**
     * Glyph index in the font.
     *
     * @private
     */
    _index: number;
    /**
     * Advance width of the glyph.
     *
     * @private
     */
    _width: number;
    /**
     * Source character code mapped to this glyph.
     *
     * @private
     */
    _charCode: number;
    /**
     * Indicates whether the glyph entry is empty with zero index width and code.
     *
     * @private
     * @returns {boolean} `true` if empty; otherwise `false`.
     */
    readonly _empty: boolean;
}
/**
 * Holds the glyph location offsets used to address entries in the glyf table.
 *
 * @private
 */
export declare class _TrueTypeLocaTable {
    /**
     * Offsets to glyph data within the 'glyf' table.
     *
     * @private
     */
    _offsets: number[];
}
/**
 * Represents the glyph header fields for contour count and bounds.
 *
 * @private
 */
export declare class _TrueTypeGlyphHeader {
    numberOfContours: number;
    xMin: number;
    yMin: number;
    xMax: number;
    yMax: number;
}
/**
 * Writes big endian values into an internal buffer with position tracking.
 *
 * @private
 */
export declare class _BigEndianWriter {
    readonly int32Size: number;
    readonly int16Size: number;
    readonly int64Size: number;
    /**
     * Internal byte buffer for assembled output.
     *
     * @private
     */
    _buffer: number[];
    /**
     * Current length of the internal buffer.
     *
     * @private
     */
    _bufferLength: number;
    /**
     * Current write position within the buffer.
     *
     * @private
     */
    _internalPosition: number;
    /**
     * Gets the internal buffer extended to the reserved capacity with zero padding.
     *
     * @private
     * @returns {number[]} The internal byte buffer.
     */
    readonly _data: number[];
    /**
     * Gets the current write position within the internal buffer with lazy init.
     *
     * @private
     * @returns {number} The current write position.
     */
    readonly _position: number;
    constructor(capacity: number);
    /**
     * Writes a sixteen bit signed value in big endian order to the buffer.
     *
     * @private
     * @param {number} value - Value to write.
     * @returns {void} nothing.
     */
    _writeShort(value: number): void;
    /**
     * Writes a thirty two bit signed value in big endian order to the buffer.
     *
     * @private
     * @param {number} value - Value to write.
     * @returns {void} nothing.
     */
    _writeInt(value: number): void;
    /**
     * Writes a thirty two bit unsigned value in big endian order to the buffer.
     *
     * @private
     * @param {number} value - Unsigned value to write.
     * @returns {void} nothing.
     */
    _writeUInt(value: number): void;
    /**
     * Writes an ascii string as raw bytes to the buffer.
     *
     * @private
     * @param {string} value - ASCII string.
     * @returns {void} nothing.
     */
    _writeString(value: string): void;
    /**
     * Writes a sequence of bytes to the buffer.
     *
     * @private
     * @param {number[]} value - Bytes to write.
     * @returns {void} nothing.
     */
    _writeBytes(value: number[]): void;
    /**
     * Flushes the provided bytes into the internal buffer and advances the position.
     *
     * @private
     * @param {number[]} buff - Bytes to flush.
     * @returns {void} nothing.
     */
    _flush(buff: number[]): void;
}
