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



/**
 * See the [Rust documentation for `AnyCalendar`](https://docs.rs/icu/2.2.0/icu/calendar/enum.AnyCalendar.html) for more information.
 */
export class Calendar {
    /** @internal */
    get ffiValue(): pointer;


    /**
     * Creates a new {@link Calendar} for the specified kind, using a particular data source.
     *
     * See the [Rust documentation for `new`](https://docs.rs/icu/2.2.0/icu/calendar/enum.AnyCalendar.html#method.new) for more information.
     */
    static createWithProvider(provider: DataProvider, kind: CalendarKind): Calendar;

    /**
     * Returns the kind of this calendar
     *
     * See the [Rust documentation for `kind`](https://docs.rs/icu/2.2.0/icu/calendar/enum.AnyCalendar.html#method.kind) for more information.
     */
    get kind(): CalendarKind;

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