import { type LanguageCode } from './LanguageCode.js'; import { LocalizedString } from './LocalizedString.js'; type ExtractProperties = T extends `${string}${'${'}${infer P}${'}'}${infer Rest}` ? P | ExtractProperties : never; type ExtractKey = TProperty extends `${infer Key}:${string}` ? Key : TProperty; type ExtractType = T extends `${string}:${infer Type}:${string}` ? GetMatchedType : T extends `${string}:${infer Type}` ? GetMatchedType : GetMatchedType<''>; type GetMatchedType = T extends keyof LocalizationFormatterTypeMap ? LocalizationFormatterTypeMap[T] : string; export interface LocalizationFormatterTypeMap { [LocalizedString.pluralityIdentityType]: number; 'string': string; 'number': number; 'Date': Date; '': string; } export type LocalizationParameters = { [P in ExtractProperties as ExtractKey

]: ExtractType

; }; export type LocalizableStringKey = keyof LocalizableStringKeys | (string & {}); export declare class LocalizableString { readonly key: Key; static readonly cache: Map>; static get(key: Key): LocalizableString; static getAsString(key: Key, parameters?: LocalizationParameters): string; private constructor(); localize(...parameters: [parameters?: LocalizationParameters] | [language: LanguageCode, parameters?: LocalizationParameters]): LocalizedString; } declare global { var t: typeof LocalizableString.getAsString; interface LocalizableStringKeys { } } export {}; //# sourceMappingURL=LocalizableString.d.ts.map