import { type AffixDegree } from "../../affix/index.js";
import { type Context } from "./context.js";
import { type Function } from "./function.js";
import { type Specification } from "./specification.js";
export * from "./context.js";
export * from "./function.js";
export * from "./specification.js";
/** Information directly pertaining to Slot IV. */
export type SlotIV = {
    /** The function of the formative. */
    readonly function: Function;
    /** The specification of the formative. */
    readonly specification: Specification;
    /** The context of the formative. */
    readonly context: Context;
};
/** Additional information relevant to Slot IV. */
export type SlotIVMetadata = {
    /** The codified contents of Slot III. */
    readonly slotIII: string;
    /**
     * If the formative has an affixual root, this is the degree of that affix.
     * Otherwise, it must be `undefined`.
     */
    readonly affixualFormativeDegree?: AffixDegree | undefined;
};
/**
 * An object mapping from contexts, functions, and specifications to their
 * Ithkuilic translations.
 */
export declare const SLOT_IV_MAP: {
    readonly EXS: {
        readonly STA: {
            readonly BSC: "a";
            readonly CTE: "ä";
            readonly CSV: "e";
            readonly OBJ: "i";
        };
        readonly DYN: {
            readonly BSC: "u";
            readonly CTE: "ü";
            readonly CSV: "o";
            readonly OBJ: "ö";
        };
    };
    readonly FNC: {
        readonly STA: {
            readonly BSC: "ai";
            readonly CTE: "au";
            readonly CSV: "ei";
            readonly OBJ: "eu";
        };
        readonly DYN: {
            readonly BSC: "ui";
            readonly CTE: "iu";
            readonly CSV: "oi";
            readonly OBJ: "ou";
        };
    };
    readonly RPS: {
        readonly STA: {
            readonly BSC: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
            readonly CTE: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
            readonly CSV: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
            readonly OBJ: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
        };
        readonly DYN: {
            readonly BSC: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
            readonly CTE: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
            readonly CSV: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
            readonly OBJ: import("../../helpers/with-wy-alternative.js").WithWYAlternative;
        };
    };
    readonly AMG: {
        readonly STA: {
            readonly BSC: "ao";
            readonly CTE: "aö";
            readonly CSV: "eo";
            readonly OBJ: "eö";
        };
        readonly DYN: {
            readonly BSC: "oa";
            readonly CTE: "öa";
            readonly CSV: "oe";
            readonly OBJ: "öe";
        };
    };
};
/** An object mapping from contexts to their indices in the standard vowel table. */
export declare const CONTEXT_TO_INDEX_MAP: {
    readonly EXS: 0;
    readonly FNC: 1;
    readonly RPS: 2;
    readonly AMG: 3;
};
/**
 * Converts Slot IV into Ithkuil.
 *
 * @param slot The function, specification, and context of the formative.
 * @param metadata Additional information relevant to Slot IV.
 * @returns Romanized Ithkuilic text representing Slot IV.
 */
export declare function slotIVToIthkuil(slot: SlotIV, metadata: SlotIVMetadata): string;
