| 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 }; |
|
|