/** @alpha */ export interface TranslationRef { $$type: '@backstage/TranslationRef'; id: TId; T: TMessages; } /** @ignore */ type AnyNestedMessages = { [key in string]: AnyNestedMessages | string; }; /** * Flattens a nested message declaration into a flat object with dot-separated keys. * * @ignore */ type FlattenedMessages = { [TKey in keyof TMessages]: (_: TMessages[TKey] extends infer TValue ? TValue extends AnyNestedMessages ? FlattenedMessages extends infer TNested ? { [TNestedKey in keyof TNested as `${TKey & string}.${TNestedKey & string}`]: TNested[TNestedKey]; } : never : { [_ in TKey]: TValue; } : never) => void; }[keyof TMessages] extends (_: infer TIntersection) => void ? { readonly [TExpandKey in keyof TIntersection]: TIntersection[TExpandKey]; } : never; /** @alpha */ export interface TranslationRefOptions Promise<{ default: { [key in keyof FlattenedMessages]: string | null; }; }>; }> { id: TId; messages: TNestedMessages; translations?: TTranslations; } /** @alpha */ export declare function createTranslationRef Promise<{ default: { [key in keyof FlattenedMessages]: string | null; }; }>; }>(config: TranslationRefOptions): TranslationRef>; export {};