import type { Cluster } from "havarotjs/cluster";
import type { Syllable } from "havarotjs/syllable";
import type { SylOpts } from "havarotjs/text";
import type { VowelNameToCharMap } from "havarotjs/utils/charMap";
import type { Word } from "havarotjs/word";
export type { SylOpts };
export interface HebrewFeature {
    /**
     * The Hebrew text — use consonants and vowels; do not use taamim
     *
     * @remarks
     * The text is parsed as a Regex so special characters like `?` and `|` can be used
     *
     */
    HEBREW: string | RegExp;
}
export interface PassThrough {
    /**
     * If `true` passes the characters of the result of the `TRANSLITERATION` callback to the be mapped to the schema.
     * If `TRANSLITERATION` is a string, this does nothing.
     *
     * @default
     * true
     *
     * @example
     * ```js
     * // with PASS_THROUGH true or undefined; the rest of the characters are passed through
     * // to regular mapping on the schema
     * heb.transliterate("בְּרֵאשִׁ֖ית", {
     *   ADDITIONAL_FEATURES: [{
     *     HEBREW: "(?<![\u{05B1}-\u{05BB}\u{05C7}].*)\u{05B0}",
     *     FEATURE: "syllable",
     *     PASS_THROUGH: true,
     *     TRANSLITERATION: function (syllable, _hebrew, schema) {
     *       const next = syllable.next;
     *       const nextVowel = next.vowelName === "SHEVA" ? "VOCAL_SHEVA" : next.vowelName
     *
     *       if (next && nextVowel) {
     *         const vowel = schema[nextVowel] || "";
     *         return syllable.text.replacenew RegExp("\u{05B0}", "u"; vowel);
     *       }
     *
     *       return syllable.text;
     *     }
     *   }]
     * });
     * ```
     *
     * @example
     * ```js
     * // with PASS_THROUGH false, a custom mapping needs to be implemented,
     * // or Hebrew characters are returned for the rest of the `FEATURE`
     * heb.transliterate("בְּרֵאשִׁ֖ית", {
     *   ADDITIONAL_FEATURES: [{
     *     HEBREW: "(?<![\u{05B1}-\u{05BB}\u{05C7}].*)\u{05B0}",
     *     FEATURE: "syllable",
     *     PASS_THROUGH: false,
     *     TRANSLITERATION: function (syllable, _hebrew, schema) {
     *       const next = syllable.next;
     *       const nextVowel = next.vowelName === "SHEVA" ? "VOCAL_SHEVA" : next.vowelName
     *
     *       if (next && nextVowel) {
     *         const vowel = schema[nextVowel] || "";
     *         return syllable.text.replacenew RegExp("\u{05B0}", "u"; vowel);
     *       }
     *
     *       return syllable.text;
     *     }
     *   }]
     * });
     * // בּērēʾšît
     * ```
     *
     * @remarks
     * This is generally most useful when the callback does not transliterate the entire `FEATURE`
     */
    PASS_THROUGH?: boolean;
}
/**
 * @param word the `Word` object that matches the `HEBREW` property
 * @param hebrew the `HEBREW` property
 * @param schema the `Schema` being used
 */
export type WordCallback = (word: Word, hebrew: string | RegExp, schema: Schema) => string;
export interface WordFeature extends HebrewFeature, PassThrough {
    /**
     * Additional orthographic feature.
     *
     * - `"cluster"` is any combination of a single character and optionally a _dagesh_ and vowel.
     * - `"syllable"` is any combination of a multiple characters and a single vowel and optionally a _dagesh_
     * - `"word"` covers everything else
     */
    FEATURE: "word";
    /**
     * a string or callback. The callback takes three par
     *
     * Using a string
     * @example
     *
     * ```js
     * transliterate("וְאֵ֥ת הָאָֽרֶץ", {
     *  ADDITIONAL_FEATURES: [{
     *    FEATURE: "word",
     *    HEBREW: "הָאָרֶץ",
     *    TRANSLITERATION: "The Earth"
     *  }]
     * });
     *
     * // wəʾēt The Earth
     * ```
     *
     * Using a callback
     * @example
     *
     * ```js
     * transliterate(heb, {
     *  ADDITIONAL_FEATURES: [{
     *    HEBREW: "שְׁתַּיִם",
     *    FEATURE: "word",
     *    TRANSLITERATION: function (_word, _hebrew, schema) {
     *      return (
     *        schema["SHIN"] +
     *       (schema["TAV_DAGESH"] ?? schema["TAV"]) +
     *        schema["PATAH"] +
     *        schema["YOD"] +
     *        schema["HIRIQ"] +
     *        schema["FINAL_MEM"]
     *      );
     *    }
     *  }]
     * });
     *
     * // štayim
     * ```
     */
    TRANSLITERATION: string | WordCallback;
}
/**
 * @param syllable the `Syllable` object that matches the `HEBREW` property
 * @param hebrew the `HEBREW` property
 * @param schema the `Schema` being used
 */
export type SyllableCallback = (syllable: Syllable, hebrew: string | RegExp, schema: Schema) => string;
export interface SyllableFeature extends HebrewFeature, PassThrough {
    /**
     * Additional orthographic feature:
     *
     * - `"cluster"` is any combination of a single character and optionally a _dagesh_ and vowel.
     * - `"syllable"` is any combination of a multiple characters and a single vowel and optionally a _dagesh_
     * - `"word"` covers everything else
     */
    FEATURE: "syllable";
    /**
     * A string or callback to customize output
     *
     * @example
     * Using a string
     * ```js
     * transliterate("מְחִיּיָאֵ֗ל", {
     *  ADDITIONAL_FEATURES: [{
     *    FEATURE: "syllable",
     *    HEBREW: /יּ(?![\u{05B4}-\u{05BB}])/u, // a yod with a dagesh, not followed by a vowel character
     *    TRANSLITERATION: "Y"
     *  }]
     * });
     *
     * məḥiYyāʾēl
     * ```
     *
     * @example
     * Using a callback
     * ```js
     * transliterate("נָעֳמִי֙", {
     *  ADDITIONAL_FEATURES: [{
     *    FEATURE: "syllable",
     *    HEBREW: /\u{05C7}/u,
     *    TRANSLITERATION: (syllable) => {
     *      // If the syllable contains a qamets qatan character (U+05C7), check the text of the next syllable
     *      const next = syllable?.next?.value?.text;
     *
     *      // If the next syllable includes a hateph qamets, then replace the qamets qatan with a regular qamets
     *      if (next && next.includes("\u05B3")) {
     *        return syllable.text.replace("\u{05C7}", "\u{05B8}");
     *      }
     *      return syllable.text;
     *    }
     *  }]
     * });
     *
     * // nāʿŏmî
     * ```
     */
    TRANSLITERATION: string | SyllableCallback;
}
/**
 * @param cluster the `Cluster` object that matches the `HEBREW` property
 * @param hebrew the `HEBREW` property
 * @param schema the `Schema` being used
 */
export type ClusterCallback = (cluster: Cluster, hebrew: string | RegExp, schema: Schema) => string;
export interface ClusterFeature extends HebrewFeature, PassThrough {
    /**
     * Additional orthographic feature.
     *
     * - `"cluster"` is any combination of a single character and optionally a _dagesh_ and vowel.
     * - `"syllable"` is any combination of a multiple characters and a single vowel and optionally a _dagesh_
     * - `"word"` covers everything else
     */
    FEATURE: "cluster";
    /**
     * A string or callback to customize the output
     *
     * @example
     * Using a string
     * ```js
     * transliterate("הַזֹּאת", {
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: "cluster",
     *     HEBREW: "זּ",
     *     TRANSLITERATION: "tz"
     *   }]
     * });
     *
     * // hatzōʾt
     * ```
     *
     * @example
     * Using a callback
     * ```js
     * transliterate("וַתֵּ֨שֶׁב", {
     *   TAV_DAGESH: "tʰ",,
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: 'cluster',
     *     HEBREW: /תּ(?!\u{05B0})/u,
     *     TRANSLITERATION: (cluster, _, schema) => {
     *       // if there is a dagesh, but it is the beginning of the word
     *       // we can return the text, as the character w/ the dagesh will not be doubled
     *       if (!cluster.prev || cluster.prev.value?.isNotHebrew) {
     *         return cluster.text;
     *       }
     *
     *       // if there is a dagesh, it may be that it is a dagesh qal (i.e. lene)
     *       // if it is a dagesh lene, then like the beginning of the word,
     *       // the character w/ the dagesh will not be doubled
     *       const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;
     *       if (!prevCoda?.includes("ת",)) {
     *         return cluster.text;
     *       }
     *
     *       // because the *_DAGESH value is a digraph, we need to replace the first character
     *       // or it will be doubled in rules.ts as "tʰtʰ"
     *       const noAspiration = schema['TAV_DAGESH']?.replace("ʰ",, '') ?? '';
     *       return cluster.text.replace("תּ",,`${noAspiration + schema['TAV_DAGESH']}`);
     *     },
     *   }]
     * });
     *
     * // wattʰēšeb
     * ```
     */
    TRANSLITERATION: string | ClusterCallback;
}
type SchemaVowels = Record<keyof VowelNameToCharMap, string>;
/**
 * @categoryDescription Consonants
 * Hebrew characters being used as consonants
 *
 * @categoryDescription Vowels
 * Hebrew characters being used as vowels, including the vocal sheva and ligatures
 *
 * @categoryDescription Taamim
 * Hebrew characters that that are used as taamim (i.e. accents)
 *
 * @categoryDescription Marks
 * Hebrew characters that are not consonants, vowels, or taamim, serving some other purpose, such as the dagesh or the paseq
 *
 * @categoryDescription Orthographic Features
 * Multiple Hebrew characters that form a semantic group, like the 3MS Suffix or a consonant with a dagesh
 *
 * @categoryDescription Syllabification
 * Options from havarotjs for syllabifying words
 */
/**
 * Class for defining a schema for transliteration.
 *
 * @remarks
 * Examples are truncated for brevity.
 */
export declare class Schema implements SylOpts, SchemaVowels {
    /**
     * HEBREW POINT SHEVA (U+05B0) ְ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   VOCAL_SHEVA: "ə",
     * });
     * transliterate("סְלִ֣ק", schema);
     * // səliq
     * ```
     */
    VOCAL_SHEVA: string;
    /**
     * HEBREW POINT HATAF SEGOL (U+05B1) ֱ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HATAF_SEGOL: "ĕ",
     * });
     * transliterate("אֱלֹהִ֑ים", schema);
     * // ʾĕlōhîm
     * ```
     */
    HATAF_SEGOL: string;
    /**
     * HEBREW POINT HATAF PATAH (U+05B2) ֲ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HATAF_PATAH: "ă",
     * });
     * transliterate("נַֽעֲשֶׂ֥ה", schema);
     * // naʿăśê
     * ```
     */
    HATAF_PATAH: string;
    /**
     * HEBREW POINT HATAF QAMATS (U+05B3) ֳ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HATAF_QAMATS: "ŏ",
     * });
     * transliterate("אֳרָנִים", schema);
     * // ʾŏrānîm
     * ```
     */
    HATAF_QAMATS: string;
    /**
     * HEBREW POINT HIRIQ (U+05B4) ִ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HIRIQ: "i",
     * });
     * transliterate("הִנֵּה֩", schema);
     * // hinnê
     * ```
     */
    HIRIQ: string;
    /**
     * HEBREW POINT TSERE (U+05B5) ֵ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TSERE: "ē",
     * });
     * transliterate("אֵשׁ", schema);
     * // ʾēš
     * ```
     */
    TSERE: string;
    /**
     * HEBREW POINT SEGOL (U+05B6) ֶ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SEGOL: "e",
     * });
     * transliterate("אֶל", schema);
     * // ʾel
     * ```
     */
    SEGOL: string;
    /**
     * HEBREW POINT PATAH (U+05B7) ַ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   PATAH: "a",
     * });
     * transliterate("נַ֗עַר", schema);
     * // naʿar
     * ```
     */
    PATAH: string;
    /**
     * HEBREW POINT QAMATS (U+05B8) ָ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   QAMATS: "ā",
     * });
     * transliterate("דָבָר֙", schema);
     * // dābār
     * ```
     */
    QAMATS: string;
    /**
     * HEBREW POINT HOLAM (U+05B9) ֹ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HOLAM: "ō",
     * });
     * transliterate("לֹא", schema);
     * // lōʾ
     * ```
     */
    HOLAM: string;
    /**
     * HEBREW POINT HOLAM HASER FOR VAV (U+05BA) ֹ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HOLAM_HASER: "ō",
     * });
     * transliterate("עָוֺן֙", schema);
     * // ʿāwōn
     * ```
     *
     * @remarks
     * See {@link holemHaser} for more about this character
     */
    HOLAM_HASER: string;
    /**
     * HEBREW POINT QUBUTS (U+05BB) ֻ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   QUBUTS: "u",
     * });
     * transliterate("קֻ֣ם", schema);
     * // qūm
     * ```
     */
    QUBUTS: string;
    /**
     * HEBREW POINT DAGESH OR MAPIQ (U+05BC) ּ◌
     *
     * @category Marks
     *
     * @example
     * A blank string
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DAGESH: "",
     * });
     * transliterate("כֵּ֑ן", schema);
     * // kēn
     * ```
     *
     * @example
     * A character
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DAGESH: ".",
     * });
     * transliterate("כֵּ֑ן", schema);
     * // k.ēn
     * ```
     *
     * @remarks
     * Typically, this should be a blank string.
     */
    DAGESH: string;
    /**
     * HEBREW POINT DAGESH OR MAPIQ (U+05BC) ּ◌
     *
     * A string or boolean, and if set to `true`, the consonant with the dagesh is repeated.
     *
     * @category Marks
     * @category Orthographic Features
     *
     * @example
     * As a string
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DAGESH_CHAZAQ: "\u0301",
     * });
     * transliterate("שַׁבָּת", schema);
     * // šab́āt
     * ```
     *
     * @example
     * As a boolean
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DAGESH_CHAZAQ: true,
     * });
     * transliterate("שַׁבָּת", schema);
     * // šabbāt
     * ```
     */
    DAGESH_CHAZAQ: boolean | string;
    /**
     * HEBREW PUNCTUATION MAQAF (U+05BE) ־◌
     *
     * @category Marks
     * @category Taamim
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   { MAQAF: "-" }
     * });
     * transliterate("אַל־", schema);
     * // ʾal-
     * ```
     */
    MAQAF: string;
    /**
     * HEBREW PUNCTUATION PASEQ (U+05C0) ׀ ◌
     *
     * @category Marks
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   PASEQ: "",
     })
     * transliterate("כְּשֶׁ֣בֶת ׀ הַמֶּ֣לֶךְ", schema);
     * // kəšebet  hammelek
     * ```
     *
     * @remarks
     * If a blank string, two spaces will occur between words; see example.
     */
    PASEQ: string;
    /**
     * HEBREW PUNCTUATION SOF PASUQ (U+05C3) ׃◌
     *
     * @category Marks
     * @category Taamim
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SOF_PASUQ: ".",
     * });
     * transliterate("הָאָֽרֶץ׃", schema);
     * // hāʾāreṣ.
     * ```
     */
    SOF_PASUQ: string;
    /**
     * HEBREW POINT QAMATS QATAN (U+05C7) ׇ◌
     *
     * @category Vowels
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   QAMATS QATAN: "o",
     * });
     * transliterate("כָּל־הָעָ֖ם", schema);
     * // kol-hāʿām
     * ```
     *
     * @remarks
     * See {@link qametsQatan} for details about this character.
     */
    QAMATS_QATAN: string;
    /**
     * HEBREW POINT PATAH (U+05B7) ◌ַ  as a furtive patah
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   FURTIVE_PATAH: "a",
     * });
     * transliterate("נֹ֖חַ", schema);
     * // nōaḥ
     * ```
     */
    FURTIVE_PATAH: string;
    /**
     * HEBREW POINT HIRIQ (U+05B4) and YOD (U+05D9) י◌ִ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HIRIQ_YOD: "î",
     * });
     * transliterate("עִ֔יר", schema);
     * // ʿîr
     * ```
     */
    HIRIQ_YOD: string;
    /**
     * HEBREW POINT TSERE (U+05B5) and YOD (U+05D9) י◌ֵ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TSERE_YOD: "ê",
     * });
     * transliterate("אֵ֤ין", schema);
     * // ʾên
     * ```
     */
    TSERE_YOD: string;
    /**
     * HEBREW POINT SEGOL (U+05B6) and YOD (U+05D9) י◌ֶ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SEGOL_YOD: "ê",
     * });
     * transliterate("אֱלֹהֶ֑יךָ", schema);
     * // ʾĕlōhêkā
     * ```
     */
    SEGOL_YOD: string;
    /**
     * HEBREW LETTER VAV (U+05D5) and DAGESH (U+05BC) וּ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SHUREQ: "û",
     * });
     * transliterate("קוּם", schema);
     * // qûm
     * ```
     */
    SHUREQ: string;
    /**
     * HEBREW LETTER HOLAM (U+05B9) and VAV (U+05D5) ֹו◌
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HOLAM_VAV: "ô",
     * });
     * transliterate("ס֣וֹא", schema);
     * // sôʾ
     * ```
     */
    HOLAM_VAV: string;
    /**
     * HEBREW POINT QAMATS (U+05B8) and HE (U+05D4) ה◌ָ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   QAMATS_HE: "â",
     * });
     * transliterate("עֵצָ֖ה", schema);
     * // ʿēṣâ
     * ```
     */
    QAMATS_HE: string;
    /**
     * HEBREW POINT PATAH (U+05B7) and HE (U+05D4) ה◌ַ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   PATAH_HE: "â",
     * });
     * transliterate("מַה־", schema);
     * // mâ-
     * ```
     */
    PATAH_HE?: string;
    /**
     * HEBREW POINT SEGOL (U+05B6) and HE (U+05D4) ה◌ֶ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SEGOL_HE: "ê",
     * });
     * transliterate("יִקְרֶ֥ה", schema);
     * // yiqrê
     * ```
     */
    SEGOL_HE?: string;
    /**
     * HEBREW POINT TSERE (U+05B5) and HE (U+05D4) ה◌ֵ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TSERE_HE: "ê",
     * });
     * transliterate("הָאַרְיֵ֔ה", schema);
     * // hāʾaryê
     * ```
     */
    TSERE_HE?: string;
    /**
     * HEBREW LETTER QAMATS (U+05B8) and YOD (U+05D9) and VAV (U+05D5) יו◌ָ
     *
     * @category Vowels
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   MS_SUFX: ”āyw”,
     * });
     * transliterate("יָדָ֛יו", schema);
     * // yādāyw
     * ```
     */
    MS_SUFX: string;
    /**
     * HEBREW LETTER ALEF (U+05D0) א
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ALEF: "ʾ",
     * });
     * transliterate("אָב", schema);
     * // ʾāb
     * ```
     */
    ALEF: string;
    /**
     * HEBREW LETTER BET (U+05D1) ב
     *
     * @category Consonants
     *
     * @example
     *  ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   BET: "b",
     * });
     * transliterate("בְּבֵית", schema);
     * // bəbêt
     * ```
     */
    BET: string;
    /**
     * HEBREW LETTER BET (U+05D1) and DAGESH (U+05BC) ּב
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * With only `BET` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   BET: "b",
     * });
     * transliterate("בְּבֵית", schema);
     * // bəbêt
     *```
     *
     * @example
     * With `BET` and `BET_DAGESH` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   BET: "v",
     *   BET_DAGESH: "b",
     * });
     * transliterate("בְּבֵית", schema);
     * // bəvêt
     * ```
     *
     * @remarks
     * The letter bet with a dagesh kal.
     * Use when need to distinguish between spirantized forms
     */
    BET_DAGESH?: string;
    /**
     * HEBREW LETTER GIMEL (U+05D2) ג
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   GIMEL: "g",
     * });
     * transliterate("גַּ֣גּ", schema);
     * // gag
     * ```
     */
    GIMEL: string;
    /**
     * HEBREW LETTER GIMEL (U+05D2) and DAGESH (U+05BC) גּ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * With only `GIMEL` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   GIMEL: "g"
     * });
     * transliterate("גַּ֣ג", schema);
     * // gag
     * ```
     *
     * @example
     * With `GIMEL` and `GIMEL_DAGESH` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   GIMEL: "gh",
     *   GIMEL_DAGESH: "g",
     * });
     * transliterate("גַּ֣ג", schema);
     * // gagh
     * ```
     *
     * @remarks
     * The letter gimel with a dagesh kal.
     * Use when need to distinguish between spirantized forms
     */
    GIMEL_DAGESH?: string;
    /**
     * HEBREW LETTER DALET (U+05D3) ד
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DALET: "d",
     * });
     * transliterate("דֹּ֣ד", schema);
     * // dōd
     * ```
     */
    DALET: string;
    /**
     * HEBREW LETTER DALET (U+05D3) and DAGESH (U+05BC) דּ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * With only `DALET` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DALET: "d",
     * });
     * transliterate("דֹּ֣ד", schema);
     * // dōd
     * ```
     *
     * @example
     * With `DALET` and `DALET_DAGESH` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DALET: "dh",
     *   DALET_DAGESH: "d",
     * });
     * transliterate("דֹּ֣ד", schema);
     * // dōdh
     * ```
     *
     * @remarks
     * The letter dalet with a dagesh kal.
     * Ue when need to distinguish between spirantized forms
     */
    DALET_DAGESH?: string;
    /**
     * HEBREW LETTER HE (U+05D4) ה
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HE: "h",
     * });
     * transliterate("הֵ֗ם", schema);
     * // hēm
     * ```
     */
    HE: string;
    /**
     * HEBREW LETTER VAV (U+05D5) ו
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   VAV: "w",
     * });
     * transliterate("וָוִ֖ים", schema);
     * // wāwîm
     * ```
     */
    VAV: string;
    /**
     * HEBREW LETTER ZAYIN (U+05D6) ז
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ZAYIN: "z",
     * });
     * transliterate("זֵ֣ד", schema);
     * // zēd
     * ```
     */
    ZAYIN: string;
    /**
     * HEBREW LETTER HET (U+05D7) ח
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   HET: "ḥ"
     * });
     * transliterate("חַ֣ג", schema);
     * // ḥag
     * ```
     */
    HET: string;
    /**
     * HEBREW LETTER TET (U+05D8) ט
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TET: "ṭ",
     * });
     * transliterate("טִֽיט", schema);
     * // ṭîṭ
     * ```
     */
    TET: string;
    /**
     * HEBREW LETTER YOD (U+05D9) י
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   YOD: "y",
     * });
     * transliterate("יָ֗ד", schema);
     * // yād
     * ```
     */
    YOD: string;
    /**
     * HEBREW LETTER FINAL KAF (U+05DA) ך
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   FINAL KAF: "k",
     * });
     * transliterate("לֶךְ", schema);
     * // lek
     * ```
     */
    FINAL_KAF: string;
    /**
     * HEBREW LETTER KAF (U+05DB) כ
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   KAF: "k",
     * });
     * transliterate("כָּ֚כָה", schema);
     * // kākâ
     * ```
     */
    KAF: string;
    /**
     * HEBREW LETTER KAF (U+05DB) and DAGESH (U+05BC) כּ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * With only `KAF` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   KAF: "k",
     * });
     * transliterate("כָּ֚כָה", schema);
     * // kākâ
     * ```
     *
     * @example
     * With `KAF` set and `KAF_DAGESH` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   KAF: "kh",
     *   KAF_DAGESH: "k",
     * });
     * transliterate("כָּ֚כָה", schema);
     * // kākhâ
     * ```
     *
     * @remarks
     * The letter kaf with a dagesh kal.
     * Use when need to distinguish between spirantized forms
     */
    KAF_DAGESH?: string;
    /**
     * HEBREW LETTER LAMED (U+05DC) ל
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   LAMED: "l",
     * });
     * transliterate("עַל", schema);
     * // ʿal
     * ```
     */
    LAMED: string;
    /**
     * HEBREW LETTER FINAL MEM (U+05DD) ם
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   FINAL MEM: "m",
     * });
     * transliterate("מַ֖יִם", schema);
     * // mayim
     * ```
     */
    FINAL_MEM: string;
    /**
     * HEBREW LETTER MEM (U+05DE) מ
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   MEM: "m",
     * });
     * transliterate("מַ֖יִם", schema);
     * // mayim
     * ```
     */
    MEM: string;
    /**
     * HEBREW LETTER FINAL NUN (U+05DF) ן
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   FINAL NUN: "n",
     * });
     * transliterate("נ֔וּן", schema);
     * // nûn
     * ```
     */
    FINAL_NUN: string;
    /**
     * HEBREW LETTER NUN (U+05E0) נ
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   NUN: "n",
     * });
     * transliterate("נ֔וּן", schema);
     * // nûn
     * ```
     */
    NUN: string;
    /**
     * HEBREW LETTER SAMEKH (U+05E1) ס
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SAMEKH: "s",
     * });
     * transliterate("ס֥וּס", schema);
     * // sûs
     * ```
     */
    SAMEKH: string;
    /**
     * HEBREW LETTER AYIN (U+05E2) ע
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   AYIN: "ʿ",
     * });
     * transliterate("עָ֑יִן", schema);
     * // ʿāyin
     * ```
     */
    AYIN: string;
    /**
     * HEBREW LETTER FINAL PE (U+05E3) ף
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   FINAL PE: "p",
     * });
     * transliterate("כַּ֣ף", schema);
     * // kap
     * ```
     */
    FINAL_PE: string;
    /**
     * HEBREW LETTER PE (U+05E4) פ
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   PE: "p",
     * });
     * transliterate("פֶּ֣רֶא חָפְשִׁ֑י", schema);
     * // pereʾ ḥopšî
     * ```
     */
    PE: string;
    /**
     * HEBREW LETTER  PE (U+05E4) and DAGESH (U+05BC) פּ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * With only `PE` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   PE_DAGESH: "p",
     * });
     * transliterate("פֶּ֣רֶא חָפְשִׁ֑י", schema);
     * // pereʾ ḥopšî
     * ```
     *
     * @example
     * With `PE` and `PE_DAGESH` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   PE: "f",
     *   PE_DAGESH: "p",
     * });
     * transliterate("פֶּ֣רֶא חָפְשִׁ֑י", schema);
     * // pereʾ ḥofšî
     * ```
     *
     * @remarks
     * The letter pe with a dagesh kal
     * Use when need to distinguish between spirantized forms
     */
    PE_DAGESH?: string;
    /**
     * HEBREW LETTER FINAL TSADI (U+05E5) ץ
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   FINAL TSADI: "ṣ",
     * });
     * transliterate("צָ֚ץ", schema);
     * // ṣāṣ
     * ```
     */
    FINAL_TSADI: string;
    /**
     * HEBREW LETTER TSADI (U+05E6) צ
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TSADI: "ṣ",
     * });
     * transliterate("צָ֚ץ", schema);
     * // ṣāṣ
     * ```
     */
    TSADI: string;
    /**
     * HEBREW LETTER QOF (U+05E7) ק
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   QOF: "q",
     * });
     * transliterate("רַ֥ק", schema);
     * // raq
     * ```
     */
    QOF: string;
    /**
     * HEBREW LETTER RESH (U+05E8) ר
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   RESH: "r",
     * });
     * transliterate("רַ֥ק", schema);
     * // raq
     * ```
     */
    RESH: string;
    /**
     * HEBREW LETTER SHIN (U+05E9) and SHIN DOT (U+05C1) שׁ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SHIN: "š",
     * });
     * transliterate("שֵׁ֖ן", schema);
     * // šēn
     * ```
     */
    SHIN: string;
    /**
     * HEBREW LETTER SHIN (U+05E9) and SIN DOT (U+05C2) שׁ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SIN: "ś",
     * });
     * transliterate("כַּשְׂדִּ֔ים", schema);
     * // kaśdîm
     * ```
     */
    SIN: string;
    /**
     * HEBREW LETTER TAV (U+05EA) ת
     *
     * @category Consonants
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TAV: "t",
     * });
     * transliterate("תֵּ֛ת", schema);
     * // tēt
     * ```
     */
    TAV: string;
    /**
     * HEBREW LETTER TAV (U+05EA) and DAGESH (U+05BC) תּ
     *
     * @category Consonants
     * @category Orthographic Features
     *
     * @example
     * With only `TAV` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TAV: "t",
     * });
     * transliterate("תֵּ֛ת", schema);
     * // tēt
     * ```
     *
     * @example
     * With `TAV` and `TAV_DAGESH` set
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TAV: "th",
     *   TAV_DAGESH: "t",
     * });
     * transliterate("תֵּ֛ת", schema);
     * // tēth
     * ```
     *
     * @remarks
     * The letter tav with a dagesh kal.
     * Use when need to distinguish between spirantized forms
     */
    TAV_DAGESH?: string;
    /**
     * Rules for customized output
     *
     * This property is an array of objects with the following properties each:
     * - `FEATURE`: the type of feature that the rule is checking — "word", "syllable", or "cluster"
     * - `HEBREW`: the Hebrew text that the rule matches, given as a string or Regex
     * - `PASS_THROUGH?`: An optional property; `true` if the rule should pass the characters of the result of the `TRANSLITERATION` callback to the be mapped to the schema
     * - `TRANSLITERATION`: the output of the rule, either a string or a callback whose properties differ based on the `FEATURE`
     *
     * The examples give the best indication of how to use these features, though see the particular types for more details
     *
     * @category Orthographic Features
     *
     * @example
     * `FEATURE` is `"word"` and `TRANSLITERATION` is a string
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: "word",
     *     HEBREW: "הָאָרֶץ",
     *     TRANSLITERATION: "The Earth"
     *   }]
     })
     * transliterate("וְאֵ֥ת הָאָֽרֶץ", schema);
     * // wəʾēt The Earth
     * ```
     *
     * @example
     * `FEATURE` is `"word"` and `TRANSLITERATION` is a callback
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ADDITIONAL_FEATURES: [{
     *     HEBREW: "שְׁתַּיִם",
     *     FEATURE: "word",
     *     TRANSLITERATION: function (_word, _hebrew, schema) {
     *       return (
     *         schema["SHIN"] +
     *         (schema["TAV_DAGESH"] ?? schema["TAV"]) +
     *         schema["PATAH"] +
     *         schema["YOD"] +
     *         schema["HIRIQ"] +
     *         schema["FINAL_MEM"]
     *       );
     *     }
     *   }]
     * });
     * transliterate("שְׁתַּיִם", schema);
     * // štayim
     * ```
     * @example
     * `FEATURE` is `"syllable"` and `TRANSLITERATION` is a string
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: "syllable",
     *     HEBREW: /יּ(?![\u{05B4}-\u{05BB}])/u, // a yod with a dagesh, not followed by a vowel character
     *     TRANSLITERATION: "Y"
     *   }]
     * });
     * transliterate("מְחִיּיָאֵ֗ל", schema);
     * // məḥiYyāʾēl
     * ```
     *
     * @example
     * `FEATURE` is `"syllable"` and `TRANSLITERATION` is a callback
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: "syllable",
     *     HEBREW: /\u{05C7}/u,
     *     TRANSLITERATION: (syllable) => {
     *       // If the syllable contains a qamets qatan character (U+05C7), check the text of the next syllable
     *       const next = syllable?.next?.value?.text;
     *
     *       // If the next syllable includes a hateph qamets, then replace the qamets qatan with a regular qamets
     *       if (next && next.includes("\u05B3")) {
     *         return syllable.text.replace("\u{05C7}", "\u{05B8}");
     *       }
     *       return syllable.text;
     *     }
     *   }]
     * });
     * transliterate("נָעֳמִי֙", schema);
     * // nāʿŏmî
     * ```
     *
     * @example
     * `FEATURE` is `"cluster"` and `TRANSLITERATION` is a string
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: "cluster",
     *     HEBREW: "זּ",
     *     TRANSLITERATION: "tz"
     *   }]
     * });;
     * transliterate("הַזֹּאת", schema);
     * // hatzōʾt
     * ```
     *
     * @example
     * `FEATURE` is "cluster" and `TRANSLITERATION` is a callback
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   TAV_DAGESH: "tʰ",,
     *   ADDITIONAL_FEATURES: [{
     *     FEATURE: 'cluster',
     *     HEBREW: /תּ(?!\u{05B0})/u,
     *     TRANSLITERATION: (cluster, _, schema) => {
     *       // Because the *_DAGESH value is a digraph, we need to replace the first character
     *       // or it will be doubled in rules.ts as "tʰtʰ"
     *
     *
     *       // If there is a dagesh, but it is the beginning of the word
     *       // we can return the text, as the character w/ the dagesh will not be doubled
     *       if (!cluster.prev || cluster.prev.value?.isNotHebrew) {
     *         return cluster.text;
     *       }
     *
     *       // If there is a dagesh, it may be that it is a dagesh qal (i.e. lene)
     *       // If it is a dagesh lene, then like the beginning of the word,
     *       // the character w/ the dagesh will not be doubled
     *       const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;
     *       if (!prevCoda?.includes("ת",)) {
     *         return cluster.text;
     *       }
     *
     *       // convert "tʰtʰ" to "ttʰ"
     *       const noAspiration = schema['TAV_DAGESH']?.replace("ʰ",, '') ?? '';
     *       return cluster.text.replace("תּ",,`${noAspiration + schema['TAV_DAGESH']}`);
     *     },
     *   }]
     * });
     * transliterate("וַתֵּ֨שֶׁב", schema);
     * // wattʰēšeb
     * ```
     *
     */
    ADDITIONAL_FEATURES?: (WordFeature | SyllableFeature | ClusterFeature)[];
    /**
     * The full form of the divine name - יהוה
     *
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DIVINE_NAME: "yhwh",
     * });
     * transliterate("יְהֹוָ֗ה", schema);
     * // yhwh
     * ```
     */
    DIVINE_NAME: string;
    /**
     * The full form of the divine name pointed as 'elohim
     *
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   DIVINE_NAME_ELOHIM: "ʾĕlōhîm",
     * });
     * transliterate("יֱהֹוִה", schema);
     * // ʾĕlōhîm
     * ```
     *
     * @remarks
     * Matches on the forms:
     * - יֱהֹוִה
     * - יֱהוִה
     * - יְהֹוִה
     * - יְהוִה
     * If `undefined`, defaults to value of {@link DIVINE_NAME}
     */
    DIVINE_NAME_ELOHIM?: string;
    /**
     * A syllable separator, usually an empty string
     *
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   SYLLABLE_SEPARATOR: "-",
     * });
     * transliterate('הָאָֽרֶץ', schema);
     * // hā-ʾā-reṣ
     * ```
     */
    SYLLABLE_SEPARATOR?: string;
    /**
     * A mark for indentifying the stressed syllable
     *
     * @category Orthographic Features
     *
     * @example
     * ```js
     * const schema = new Schema({
     *   // truncated for brevity
     *   STRESS_MARKER: {
     *     location: "after-vowel",
     *     mark: "\u0301",
     *    },
     * });
     * transliterate("מֶ֣לֶךְ", schema);
     * // mélek
     * ```
     *
     * @remarks
     * Taamim are needed in the Hebrew text to correctly identify stress.
     */
    STRESS_MARKER?: {
        /**
         * The location of the mark
         */
        location: "before-syllable" | "after-syllable" | "before-vowel" | "after-vowel";
        /**
         * A string to use as the marker
         */
        mark: string;
        /**
         * Whether to exclude the mark on certain syllables
         *
         * @default
         * "never"
         *
         * @example
         * `undefined` and `"never"` are the same
         * ```js
         * const schema = new Schema({
         *   STRESS_MARKER: {
         *     location: "after-vowel",
         *     mark: "\u0301",
         *    },
         * });
         * transliterate("בֹּ֖קֶר י֥וֹם אֶחָֽד׃ ", schema);
         * // bṓqer yốm ʾeḥā́d
         * ```
         *
         * @example
         * Exclude only single syllable words using `"single"`
         * ```js
         * const schema = new Schema({
         *   STRESS_MARKER: {
         *     location: "after-vowel",
         *     mark: "\u0301",
         *     exclude: "single",
         *    },
         * });
         * transliterate("בֹּ֖קֶר י֥וֹם אֶחָֽד׃ ", schema);
         * // bṓqer yôm ʾeḥā́d
         * ```
         *
         * @example
         * Exclude when accent is on the final syllable, implicitly excluding single syllable words using `"final"`
         * ```js
         * const schema = new Schema({
         *   STRESS_MARKER: {
         *     location: "after-vowel",
         *     mark: "\u0301",
         *     exclude: "final",
         *    },
         * });
         * transliterate("בֹּ֖קֶר י֥וֹם אֶחָֽד׃ ", schema);
         * // bṓqer yôm ʾeḥād
         * ```
         */
        exclude?: "never" | "final" | "single";
    };
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    allowNoNiqqud: SylOpts["allowNoNiqqud"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    article: SylOpts["article"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    holemHaser: SylOpts["holemHaser"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     *
     */
    ketivQeres?: SylOpts["ketivQeres"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    longVowels: SylOpts["longVowels"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    qametsQatan: SylOpts["qametsQatan"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    shevaAfterMeteg: SylOpts["shevaAfterMeteg"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    shevaWithMeteg?: SylOpts["shevaWithMeteg"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    sqnmlvy: SylOpts["sqnmlvy"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    strict: SylOpts["strict"];
    /**
     * @category Syllabification
     *
     * @remarks
     * See implementation for more details
     */
    wawShureq: SylOpts["wawShureq"];
    /**@category Constructors */
    constructor(schema: Schema);
}
/**
 * The default schema according to SBL's academic style guide.
 *
 * Whereas a new {@link Schema} must have all required properties when constructed,
 * this schema is meant to be used as a default so particular properties can be overidden (see example).
 *
 * If the property is not set, the default value will be used. Each property is documented below with their default values.
 *
 * Click into each property's "Overrides" for more information about that property.
 *
 * @param schema a {@link Schema | Partial\<Schema\>}
 *
 * @example
 * Extend the default schema
 * ```js
 *  transliterate("שָׁלוֹם", { SHIN: "sh" });
 * // shālôm
 * ```
 *
 * @privateRemarks
 * In order for documentation output to be the way I wanted, the properties are all redefined with their type from the Schema.
 * This is not necessary for the implementation, just the docs.
 */
export declare class SBL extends Schema {
    /** @category Vowels @default "ə" */
    VOCAL_SHEVA: Schema["VOCAL_SHEVA"];
    /** @category Vowels @default "ĕ" */
    HATAF_SEGOL: Schema["HATAF_SEGOL"];
    /** @category Vowels @default "ă" */
    HATAF_PATAH: Schema["HATAF_PATAH"];
    /** @category Vowels @default "ŏ" */
    HATAF_QAMATS: Schema["HATAF_QAMATS"];
    /** @category Vowels @default "i" */
    HIRIQ: Schema["HIRIQ"];
    /** @category Vowels @default "ē" */
    TSERE: Schema["TSERE"];
    /** @category Vowels @default "e" */
    SEGOL: Schema["SEGOL"];
    /** @category Vowels @default "a" */
    PATAH: Schema["PATAH"];
    /** @category Vowels @default "ā" */
    QAMATS: Schema["QAMATS"];
    /** @category Vowels @default "ō" */
    HOLAM: Schema["HOLAM"];
    /** @category Vowels @default "ō" */
    HOLAM_HASER: Schema["HOLAM_HASER"];
    /** @category Vowels @default "ū" */
    QUBUTS: Schema["QUBUTS"];
    /** @category Marks @default "" */
    DAGESH: Schema["DAGESH"];
    /** @category Marks @category Orthographic Features @default true */
    DAGESH_CHAZAQ: Schema["DAGESH_CHAZAQ"];
    /** @category Marks @category Taamim @default "-" */
    MAQAF: Schema["MAQAF"];
    /** @category Marks @default "" */
    PASEQ: Schema["PASEQ"];
    /** @category Marks @category Taamim @default "" */
    SOF_PASUQ: Schema["SOF_PASUQ"];
    /** @category Vowels @default "o" */
    QAMATS_QATAN: Schema["QAMATS_QATAN"];
    /** @category Vowels @category Orthographic Features @default "a" */
    FURTIVE_PATAH: Schema["FURTIVE_PATAH"];
    /** @category Vowels @category Orthographic Features @default "î" */
    HIRIQ_YOD: Schema["HIRIQ_YOD"];
    /** @category Vowels @category Orthographic Features @default "ê" */
    TSERE_YOD: Schema["TSERE_YOD"];
    /** @category Vowels @category Orthographic Features @default "ê" */
    SEGOL_YOD: Schema["SEGOL_YOD"];
    /** @category Vowels @category Orthographic Features @default "û" */
    SHUREQ: Schema["SHUREQ"];
    /** @category Vowels @category Orthographic Features @default "ô" */
    HOLAM_VAV: Schema["HOLAM_VAV"];
    /** @category Vowels @category Orthographic Features @default "â" */
    QAMATS_HE: Schema["QAMATS_HE"];
    /** @category Vowels @category Orthographic Features @default undefined */
    PATAH_HE: Schema["PATAH_HE"];
    /** @category Vowels @category Orthographic Features @default undefined */
    SEGOL_HE: Schema["SEGOL_HE"];
    /** @category Vowels @category Orthographic Features @default undefined */
    TSERE_HE: Schema["TSERE_HE"];
    /** @category Vowel @category Orthographic Features @default "āyw" */
    MS_SUFX: Schema["MS_SUFX"];
    /** @category Consonants @default "ʾ" */
    ALEF: Schema["ALEF"];
    /** @category Consonants @default "b" */
    BET: Schema["BET"];
    /** @category Consonants @category Orthographic Features @default undefined */
    BET_DAGESH: Schema["BET_DAGESH"];
    /** @category Consonants @default "g" */
    GIMEL: Schema["GIMEL"];
    /** @category Consonants @category Orthographic Features @default undefined */
    GIMEL_DAGESH: Schema["GIMEL_DAGESH"];
    /** @category Consonants @default "d" */
    DALET: Schema["DALET"];
    /** @category Consonants @category Orthographic Features @default undefined */
    DALET_DAGESH: Schema["DALET_DAGESH"];
    /** @category Consonants @default "h" */
    HE: Schema["HE"];
    /** @category Consonants @default "w" */
    VAV: Schema["VAV"];
    /** @category Consonants @default "z" */
    ZAYIN: Schema["ZAYIN"];
    /** @category Consonants @default "ḥ" */
    HET: Schema["HET"];
    /** @category Consonants @default "ṭ" */
    TET: Schema["TET"];
    /** @category Consonants @default "y" */
    YOD: Schema["YOD"];
    /** @category Consonants @default "k" */
    FINAL_KAF: Schema["FINAL_KAF"];
    /** @category Consonants @default "k" */
    KAF: Schema["KAF"];
    /** @category Consonants @category Orthographic Features @default undefined */
    KAF_DAGESH: Schema["KAF_DAGESH"];
    /** @category Consonants @default "l" */
    LAMED: Schema["LAMED"];
    /** @category Consonants @default "m" */
    FINAL_MEM: Schema["FINAL_MEM"];
    /** @category Consonants @default "m" */
    MEM: Schema["MEM"];
    /** @category Consonants @default "n" */
    FINAL_NUN: Schema["FINAL_NUN"];
    /** @category Consonants @default "n" */
    NUN: Schema["NUN"];
    /** @category Consonants @default "s" */
    SAMEKH: Schema["SAMEKH"];
    /** @category Consonants @default "ʿ" */
    AYIN: Schema["AYIN"];
    /** @category Consonants @default "p" */
    FINAL_PE: Schema["FINAL_PE"];
    /** @category Consonants @default "p" */
    PE: Schema["PE"];
    /** @category Consonants @category Orthographic Features @default undefined */
    PE_DAGESH: Schema["PE_DAGESH"];
    /** @category Consonants @default "ṣ" */
    FINAL_TSADI: Schema["FINAL_TSADI"];
    /** @category Consonants @default "ṣ" */
    TSADI: Schema["TSADI"];
    /** @category Consonants @default "q" */
    QOF: Schema["QOF"];
    /** @category Consonants @default "r" */
    RESH: Schema["RESH"];
    /** @category Consonants @category Orthographic Features @default "š" */
    SHIN: Schema["SHIN"];
    /** @category Consonants @category Orthographic Features @default "ś" */
    SIN: Schema["SIN"];
    /** @category Consonants @default "t" */
    TAV: Schema["TAV"];
    /** @category Consonants @category Orthographic Features @default undefined */
    TAV_DAGESH: Schema["TAV_DAGESH"];
    /** @category Orthographic Features @default "yhwh" */
    DIVINE_NAME: Schema["DIVINE_NAME"];
    /** @category Orthographic Features @default undefined */
    DIVINE_NAME_ELOHIM: Schema["DIVINE_NAME_ELOHIM"];
    /** @category Orthographic Features @default undefined */
    SYLLABLE_SEPARATOR: Schema["SYLLABLE_SEPARATOR"];
    /**
     * @category Orthographic Features
     * @default
     * ```js
     * [
     *  {
     *    FEATURE: "syllable",
     *    HEBREW: /[\u{05B4}\u{05BB}]/u,
     *    TRANSLITERATION: (syllable, heb, schema) => {
     *      const hasMater = syllable.clusters.some((cluster) => cluster.isMater);
     *      if (syllable.isAccented && !hasMater) {
     *        const macron = "\u0304";
     *        const output = syllable.hasVowelName("HIRIQ") ? schema["HIRIQ"] + macron : schema["QUBUTS"] + macron;
     *        return syllable.text.replace(heb, output.normalize("NFC"));
     *      }
     *      return syllable.text;
     *    }
     *  }
     * ]
     * ```
     */
    ADDITIONAL_FEATURES: Schema["ADDITIONAL_FEATURES"];
    /** @category Orthographic Features @default undefined */
    STRESS_MARKER: Schema["STRESS_MARKER"];
    /** @category Syllabification @default true */
    longVowels: Schema["longVowels"];
    /** @category Syllabification @default true */
    qametsQatan: Schema["qametsQatan"];
    /** @category Syllabification @default true */
    shevaAfterMeteg: Schema["shevaAfterMeteg"];
    /** @category Syllabification @default false */
    shevaWithMeteg: Schema["shevaWithMeteg"];
    /** @category Syllabification @default true */
    sqnmlvy: Schema["sqnmlvy"];
    /** @category Syllabification @default true */
    wawShureq: Schema["wawShureq"];
    /** @category Syllabification @default true */
    article: Schema["article"];
    /** @category Syllabification @default true */
    allowNoNiqqud: Schema["allowNoNiqqud"];
    /** @category Syllabification @default false */
    strict: Schema["strict"];
    /** @category Syllabification @default "remove" */
    holemHaser: Schema["holemHaser"];
    /** @category Syllabification @default undefined */
    ketivQeres: Schema["ketivQeres"];
    constructor(schema: Partial<Schema>);
}
