+ export type NoOptionI18nKeys =
+${noOptionKeys.map(key => `${indent}| "${key}"`).join("\n")};
+
+ export type OptionI18nKeys =
+${optionKeys.map(key => `${indent}| "${key}"`).join("\n")};
+
+ export type I18nKeys = NoOptionI18nKeys | OptionI18nKeys;
+
+ export type TTypedOptions<TKey extends OptionI18nKeys> =${Array.from(
+ optionMap.entries()
+ ).reduce(
+ (acc, [key, options]) =>
+ `${acc} TKey extends \"${key}\" ? ${
+ options.reduce((acc, cur) => acc + `${cur}: string | number; `, "{ ") +
+ "}"
+ } :\n${indent}`,
+ ""
+ )} (Record<string, unknown> | string);
+