import { WithWYAlternative } from "../../helpers/with-wy-alternative.js";
/** A case. */
export type Case = "THM" | "INS" | "ABS" | "AFF" | "STM" | "EFF" | "ERG" | "DAT" | "IND" | "POS" | "PRP" | "GEN" | "ATT" | "PDC" | "ITP" | "OGN" | "IDP" | "PAR" | "APL" | "PUR" | "TRA" | "DFR" | "CRS" | "TSP" | "CMM" | "CMP" | "CSD" | "FUN" | "TFM" | "CLA" | "RSL" | "CSM" | "CON" | "AVR" | "CVS" | "SIT" | "PRN" | "DSP" | "COR" | "CPS" | "COM" | "UTL" | "PRD" | "RLT" | "ACT" | "ASI" | "ESS" | "TRM" | "SEL" | "CFM" | "DEP" | "VOC" | "LOC" | "ATD" | "ALL" | "ABL" | "ORI" | "IRL" | "INV" | "NAV" | "CNR" | "ASS" | "PER" | "PRO" | "PCV" | "PCR" | "ELP" | "PLM";
/** An array containing all cases. */
export declare const ALL_CASES: readonly Case[];
/**
 * An array containing all cases that has empty values in the skipped positions
 * where the RLT, VOC, NAV, and PLM cases would normally be.
 */
export declare const ALL_CASES_SKIPPING_DEGREE_8: readonly (Case | undefined)[];
/** An object mapping cases to their Ithkuilic translations. */
export declare const CASE_TO_ITHKUIL_MAP: {
    readonly false: {
        readonly THM: "a";
        readonly INS: "ä";
        readonly ABS: "e";
        readonly AFF: "i";
        readonly STM: "ëi";
        readonly EFF: "ö";
        readonly ERG: "o";
        readonly DAT: "ü";
        readonly IND: "u";
        readonly POS: "ai";
        readonly PRP: "au";
        readonly GEN: "ei";
        readonly ATT: "eu";
        readonly PDC: "ëu";
        readonly ITP: "ou";
        readonly OGN: "oi";
        readonly IDP: "iu";
        readonly PAR: "ui";
        readonly APL: WithWYAlternative;
        readonly PUR: WithWYAlternative;
        readonly TRA: WithWYAlternative;
        readonly DFR: WithWYAlternative;
        readonly CRS: "eë";
        readonly TSP: WithWYAlternative;
        readonly CMM: WithWYAlternative;
        readonly CMP: WithWYAlternative;
        readonly CSD: WithWYAlternative;
        readonly FUN: "ao";
        readonly TFM: "aö";
        readonly CLA: "eo";
        readonly RSL: "eö";
        readonly CSM: "oë";
        readonly CON: "öe";
        readonly AVR: "oe";
        readonly CVS: "öa";
        readonly SIT: "oa";
        readonly PRN: "a'a";
        readonly DSP: "ä'ä";
        readonly COR: "e'e";
        readonly CPS: "i'i";
        readonly COM: "ë'i";
        readonly UTL: "ö'ö";
        readonly PRD: "o'o";
        readonly RLT: "u'u";
        readonly ACT: "a'i";
        readonly ASI: "a'u";
        readonly ESS: "e'i";
        readonly TRM: "e'u";
        readonly SEL: "ë'u";
        readonly CFM: "o'u";
        readonly DEP: "o'i";
        readonly VOC: "u'i";
        readonly LOC: "i'a";
        readonly ATD: "i'e";
        readonly ALL: "i'o";
        readonly ABL: "i'ö";
        readonly ORI: "e'ë";
        readonly IRL: "u'ö";
        readonly INV: "u'o";
        readonly NAV: "u'a";
        readonly CNR: "a'o";
        readonly ASS: "a'ö";
        readonly PER: "e'o";
        readonly PRO: "e'ö";
        readonly PCV: "o'ë";
        readonly PCR: "ö'e";
        readonly ELP: "o'e";
        readonly PLM: "o'a";
    };
    readonly true: {
        readonly THM: "a";
        readonly INS: "ä";
        readonly ABS: "e";
        readonly AFF: "i";
        readonly STM: "ëi";
        readonly EFF: "ö";
        readonly ERG: "o";
        readonly DAT: "ü";
        readonly IND: "u";
        readonly POS: "ai";
        readonly PRP: "au";
        readonly GEN: "ei";
        readonly ATT: "eu";
        readonly PDC: "ëu";
        readonly ITP: "ou";
        readonly OGN: "oi";
        readonly IDP: "iu";
        readonly PAR: "ui";
        readonly APL: WithWYAlternative;
        readonly PUR: WithWYAlternative;
        readonly TRA: WithWYAlternative;
        readonly DFR: WithWYAlternative;
        readonly CRS: "eë";
        readonly TSP: WithWYAlternative;
        readonly CMM: WithWYAlternative;
        readonly CMP: WithWYAlternative;
        readonly CSD: WithWYAlternative;
        readonly FUN: "ao";
        readonly TFM: "aö";
        readonly CLA: "eo";
        readonly RSL: "eö";
        readonly CSM: "oë";
        readonly CON: "öe";
        readonly AVR: "oe";
        readonly CVS: "öa";
        readonly SIT: "oa";
        readonly PRN: "a";
        readonly DSP: "ä";
        readonly COR: "e";
        readonly CPS: "i";
        readonly COM: "ëi";
        readonly UTL: "ö";
        readonly PRD: "o";
        readonly RLT: "u";
        readonly ACT: "ai";
        readonly ASI: "au";
        readonly ESS: "ei";
        readonly TRM: "eu";
        readonly SEL: "ëu";
        readonly CFM: "ou";
        readonly DEP: "oi";
        readonly VOC: "ui";
        readonly LOC: WithWYAlternative;
        readonly ATD: WithWYAlternative;
        readonly ALL: WithWYAlternative;
        readonly ABL: WithWYAlternative;
        readonly ORI: "eë";
        readonly IRL: WithWYAlternative;
        readonly INV: WithWYAlternative;
        readonly NAV: WithWYAlternative;
        readonly CNR: "ao";
        readonly ASS: "aö";
        readonly PER: "eo";
        readonly PRO: "eö";
        readonly PCV: "oë";
        readonly PCR: "öe";
        readonly ELP: "oe";
        readonly PLM: "oa";
    };
};
/** An object mapping from cases to their names. */
export declare const CASE_TO_NAME_MAP: {
    readonly THM: "Thematic";
    readonly INS: "Instrumental";
    readonly ABS: "Absolutive";
    readonly AFF: "Affective";
    readonly STM: "Stimulative";
    readonly EFF: "Effectuative";
    readonly ERG: "Ergative";
    readonly DAT: "Dative";
    readonly IND: "Inducive";
    readonly POS: "Possessive";
    readonly PRP: "Proprietive";
    readonly GEN: "Genitive";
    readonly ATT: "Attributive";
    readonly PDC: "Productive";
    readonly ITP: "Interpretative";
    readonly OGN: "Originative";
    readonly IDP: "Interdependent";
    readonly PAR: "Partitive";
    readonly APL: "Applicative";
    readonly PUR: "Purposive";
    readonly TRA: "Transmissive";
    readonly DFR: "Deferential";
    readonly CRS: "Contrastive";
    readonly TSP: "Transpositive";
    readonly CMM: "Commutative";
    readonly CMP: "Comparative";
    readonly CSD: "Considerative";
    readonly FUN: "Functive";
    readonly TFM: "Transformative";
    readonly CLA: "Classificative";
    readonly RSL: "Resultative";
    readonly CSM: "Consumptive";
    readonly CON: "Concessive";
    readonly AVR: "Aversive";
    readonly CVS: "Conversive";
    readonly SIT: "Situative";
    readonly PRN: "Pertinential";
    readonly DSP: "Descriptive";
    readonly COR: "Correlative";
    readonly CPS: "Compositive";
    readonly COM: "Comitative";
    readonly UTL: "Utilitative";
    readonly PRD: "Predicative";
    readonly RLT: "Relative";
    readonly ACT: "Activative";
    readonly ASI: "Assimilative";
    readonly ESS: "Essive";
    readonly TRM: "Terminative";
    readonly SEL: "Selective";
    readonly CFM: "Conformative";
    readonly DEP: "Dependent";
    readonly VOC: "Vocative";
    readonly LOC: "Locative";
    readonly ATD: "Attendant";
    readonly ALL: "Allative";
    readonly ABL: "Ablative";
    readonly ORI: "Orientative";
    readonly IRL: "Interrelative";
    readonly INV: "Intrative";
    readonly NAV: "Navigative";
    readonly CNR: "Concursive";
    readonly ASS: "Assessive";
    readonly PER: "Periodic";
    readonly PRO: "Prolapsive";
    readonly PCV: "Precursive";
    readonly PCR: "Postcursive";
    readonly ELP: "Elapsive";
    readonly PLM: "Prolimitive";
};
/**
 * An object mapping from case-related affix types and whether they're inverse
 * accessor affixes to their Cs forms (omitting the -w or -y at the end).
 */
export declare const CASE_AFFIX_TO_CS_MAP: {
    readonly false: readonly [never?, "s"?, "z"?, "č"?];
    readonly true: readonly [never?, "š"?, "ž"?, "j"?];
};
/**
 * Converts a case into Ithkuil.
 *
 * @param case_ The case to be converted.
 * @param elideIfPossible Whether the THM case can be eliminated.
 * @param hideGlottalStop Whether to hide the glottal stop. This is typically
 *   used in concatenated formatives and in case-related affixes.
 * @returns A string or `WithWYAlternative` containing romanized Ithkuilic text
 *   representing the case.
 */
export declare function caseToIthkuil(case_: Case, elideIfPossible: boolean, hideGlottalStop: boolean): string | WithWYAlternative;
