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



/**
 * An object that runs the ICU4X locale fallback algorithm.
 *
 * See the [Rust documentation for `LocaleFallbacker`](https://docs.rs/icu_locale/2.1.1/icu_locale/struct.LocaleFallbacker.html) for more information.
 */
export class LocaleFallbacker {
    /** @internal */
    get ffiValue(): pointer;


    /**
     * Creates a new `LocaleFallbacker` from a data provider.
     *
     * See the [Rust documentation for `new`](https://docs.rs/icu_locale/2.1.1/icu_locale/struct.LocaleFallbacker.html#method.new) for more information.
     */
    static createWithProvider(provider: DataProvider): LocaleFallbacker;

    /**
     * Creates a new `LocaleFallbacker` without data for limited functionality.
     *
     * See the [Rust documentation for `new_without_data`](https://docs.rs/icu_locale/2.1.1/icu_locale/struct.LocaleFallbacker.html#method.new_without_data) for more information.
     */
    static withoutData(): LocaleFallbacker;

    /**
     * Associates this `LocaleFallbacker` with configuration options.
     *
     * See the [Rust documentation for `for_config`](https://docs.rs/icu_locale/2.1.1/icu_locale/struct.LocaleFallbacker.html#method.for_config) for more information.
     */
    forConfig(config: LocaleFallbackConfig_obj): LocaleFallbackerWithConfig;

    /**
     * Creates a new `LocaleFallbacker` from compiled data.
     *
     * See the [Rust documentation for `new`](https://docs.rs/icu_locale/2.1.1/icu_locale/struct.LocaleFallbacker.html#method.new) for more information.
     */
    constructor();
}