// generated by diplomat-tool
import type { Locale } from "./Locale"
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";



/**
 * The various calendar types currently supported by {@link Calendar}
 *
 * See the [Rust documentation for `AnyCalendarKind`](https://docs.rs/icu/2.2.0/icu/calendar/enum.AnyCalendarKind.html) for more information.
 */
export class CalendarKind {

    /** @internal */
    static fromValue(value: CalendarKind | string): CalendarKind;

    get value(): string;

    /** @internal */
    get ffiValue(): number;

    /**
     * The kind of an Iso calendar
     */
    static Iso : CalendarKind;
    /**
     * The kind of a Gregorian calendar
     */
    static Gregorian : CalendarKind;
    /**
     * The kind of a Buddhist calendar
     */
    static Buddhist : CalendarKind;
    /**
     * The kind of a Japanese calendar
     */
    static Japanese : CalendarKind;
    /**
     * Deprecated, use `Japanese`
     *
     * @deprecated use `Japanese`
     */
    static JapaneseExtended : CalendarKind;
    /**
     * The kind of an Ethiopian calendar, with Amete Mihret era
     */
    static Ethiopian : CalendarKind;
    /**
     * The kind of an Ethiopian calendar, with Amete Alem era
     */
    static EthiopianAmeteAlem : CalendarKind;
    /**
     * The kind of a Indian calendar
     */
    static Indian : CalendarKind;
    /**
     * The kind of a Coptic calendar
     */
    static Coptic : CalendarKind;
    /**
     * The kind of a Dangi calendar
     */
    static Dangi : CalendarKind;
    /**
     * The kind of a Chinese calendar
     */
    static Chinese : CalendarKind;
    /**
     * The kind of a Hebrew calendar
     */
    static Hebrew : CalendarKind;
    /**
     * The kind of a Hijri tabular, type II leap years, Friday epoch, calendar
     */
    static HijriTabularTypeIiFriday : CalendarKind;
    /**
     * The kind of a Hijri simulated, Mecca calendar
     */
    static HijriSimulatedMecca : CalendarKind;
    /**
     * The kind of a Hijri tabular, type II leap years, Thursday epoch, calendar
     */
    static HijriTabularTypeIiThursday : CalendarKind;
    /**
     * The kind of a Hijri Umm al-Qura calendar
     */
    static HijriUmmAlQura : CalendarKind;
    /**
     * The kind of a Julian calendar,
     */
    static Julian : CalendarKind;
    /**
     * The kind of a Persian calendar
     */
    static Persian : CalendarKind;
    /**
     * The kind of a Roc calendar
     */
    static Roc : CalendarKind;


    /**
     * Creates a new {@link CalendarKind} for the specified locale, using compiled data.
     *
     * See the [Rust documentation for `try_new`](https://docs.rs/icu/2.2.0/icu/calendar/enum.AnyCalendarKind.html#method.try_new) for more information.
     */
    static create(locale: Locale): CalendarKind;

    constructor(value: CalendarKind | string );
}