import { StringEncoding } from "iconv-corefoundation";
|
import Context from "./Context";
|
import Labels from "./Labels";
|
export declare class NoSuchLanguageError extends Error {
|
lang: LangSpecs;
|
constructor(lang: LangSpecs);
|
}
|
export declare abstract class Language {
|
static byTag: {
|
[langTag: string]: Language | undefined;
|
};
|
static byID: Array<Language | undefined>;
|
static add(lang: Language): void;
|
static bySpec(lang: LangSpecs, context?: Context): Language[];
|
abstract charset: StringEncoding;
|
abstract doubleByteCharset: boolean;
|
abstract englishName: string;
|
abstract labels?: Labels;
|
abstract languageID: number;
|
abstract langTags: string[];
|
abstract localizedName: string;
|
toString(): string;
|
}
|
export default Language;
|
export declare type LangSpec = string | number;
|
export declare type LangSpecs = LangSpec | LangSpec[];
|
export interface Localization {
|
lang: LangSpecs;
|
}
|
declare namespace indexByLanguage {
|
interface Options<T, U> {
|
filter?(object: T): boolean;
|
map?(object: T, lang: Language): U | undefined;
|
onCollisions?(languageIDs: Set<number>): void;
|
}
|
}
|
declare function indexByLanguage<T extends Localization>(objects: Iterable<T>, options?: indexByLanguage.Options<T, T> & {
|
map?: never;
|
}): Map<number, T>;
|
declare function indexByLanguage<T extends Localization, U>(objects: Iterable<T>, options: indexByLanguage.Options<T, U> & {
|
map(object: T, lang: Language): U;
|
}): Map<number, Exclude<U, undefined>>;
|
export { indexByLanguage };
|