import * as JMdict from './jmdict';
export interface JMnedict {
    JMnedict: [{
        /**
         * Array of entry
         *
         * Entries consist of kanji elements, reading elements
         * name translation elements. Each entry must have at
         * least one reading element and one sense element. Others are optional.
         */
        entry: entry[];
    }];
}
/**
 * Entries consist of kanji elements, reading elements
 * name translation elements. Each entry must have at
 * least one reading element and one sense element. Others are optional.
 */
export interface entry {
    /**
     * A unique numeric sequence number for each entry
     */
    ent_seq: [number];
    /**
     * Array of k_ele
     *
     * The kanji element, or in its absence, the reading element, is
     * the defining component of each entry.
     * The overwhelming majority of entries will have a single kanji
     * element associated with an entity name in Japanese. Where there are
     * multiple kanji elements within an entry, they will be orthographical
     * variants of the same word, either using variations in okurigana, or
     * alternative and equivalent kanji. Common "mis-spellings" may be
     * included, provided they are associated with appropriate information
     * fields. Synonyms are not included; they may be indicated in the
     * cross-reference field associated with the sense element.
     */
    k_ele?: k_ele[];
    /**
     * Array of r_ele
     *
     * The reading element typically contains the valid readings
     * of the word(s) in the kanji element using modern kanadzukai.
     * Where there are multiple reading elements, they will typically be
     * alternative readings of the kanji element. In the absence of a
     * kanji element, i.e. in the case of a word or phrase written
     * entirely in kana, these elements will define the entry.
     */
    r_ele: r_ele[];
    /**
     * Array of trans
     *
     * The trans element will record the translational equivalent
     * of the Japanese name, plus other related information.
     */
    trans: trans[];
}
/**
 * The kanji element, or in its absence, the reading element, is
 * the defining component of each entry.
 * The overwhelming majority of entries will have a single kanji
 * element associated with an entity name in Japanese. Where there are
 * multiple kanji elements within an entry, they will be orthographical
 * variants of the same word, either using variations in okurigana, or
 * alternative and equivalent kanji. Common "mis-spellings" may be
 * included, provided they are associated with appropriate information
 * fields. Synonyms are not included; they may be indicated in the
 * cross-reference field associated with the sense element.
 */
export interface k_ele extends JMdict.k_ele {
    /**
     * This element will contain a word or short phrase in Japanese
     * which is written using at least one non-kana character (usually kanji,
     * but can be other characters). The valid characters are
     * kanji, kana, related characters such as chouon and kurikaeshi, and
     * in exceptional cases, letters from other alphabets.
     */
    keb: [string];
}
/**
 * The reading element typically contains the valid readings
 * of the word(s) in the kanji element using modern kanadzukai.
 * Where there are multiple reading elements, they will typically be
 * alternative readings of the kanji element. In the absence of a
 * kanji element, i.e. in the case of a word or phrase written
 * entirely in kana, these elements will define the entry.
 */
export interface r_ele {
    /**
     * this element content is restricted to kana and related
     * characters such as chouon and kurikaeshi. Kana usage will be
     * consistent between the keb and reb elements; e.g. if the keb
     * contains katakana, so too will the reb.
     */
    reb: [string];
}
/**
 * The trans element will record the translational equivalent
 * of the Japanese name, plus other related information.
 */
export interface trans {
    /**
     * The type of name, recorded in the appropriate entity codes.
     */
    name_type?: string[];
    /**
     * This element is used to indicate a cross-reference to another
     * entry with a similar or related meaning or sense. The content of
     * this element is typically a keb or reb element in another entry. In some
     * cases a keb will be followed by a reb and/or a sense number to provide
     * a precise target for the cross-reference. Where this happens, a JIS
     * "centre-dot" (0x2126) is placed between the components of the
     * cross-reference.
     */
    xref?: string[];
    /**
     * The actual translations of the name, usually as a transcription
     * into the target language.
     */
    trans_det?: string[];
}
