keycloakify
Version:
Framework to create custom Keycloak UIs
19 lines (18 loc) • 1.7 kB
TypeScript
import type { LanguageTag as LanguageTag_defaultSet, MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types";
import { type ReturnTypeOfCreateUseI18n } from "../withJsx/useI18n";
export type I18nBuilder<ThemeName extends string = never, MessageKey_themeDefined extends string = never, LanguageTag_notInDefaultSet extends string = never, ExcludedMethod extends "withThemeName" | "withExtraLanguages" | "withCustomTranslations" = never> = Omit<{
withThemeName: <ThemeName extends string>() => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withThemeName">;
withExtraLanguages: <LanguageTag_notInDefaultSet extends string>(extraLanguageTranslations: {
[LanguageTag in LanguageTag_notInDefaultSet]: {
label: string;
getMessages: () => Promise<{
default: Record<MessageKey_defaultSet, string>;
}>;
};
}) => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withExtraLanguages">;
withCustomTranslations: <MessageKey_themeDefined extends string>(messagesByLanguageTag_themeDefined: Partial<{
[LanguageTag in LanguageTag_defaultSet | LanguageTag_notInDefaultSet]: Record<MessageKey_themeDefined, string | Record<ThemeName, string>>;
}>) => I18nBuilder<ThemeName, string extends MessageKey_themeDefined ? never : MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withCustomTranslations">;
build: () => ReturnTypeOfCreateUseI18n<MessageKey_themeDefined, LanguageTag_notInDefaultSet>;
}, ExcludedMethod>;
export declare const i18nBuilder: I18nBuilder<never, never, never, never>;