import type { defaultLocale } from './const'; type SdkI18nNamespaces = typeof defaultLocale; type NestedKeys = T extends object ? { [K in keyof T & string]: T[K] extends object ? NestedKeys : `${Prefix}${K}`; }[keyof T & string] : never; type ValueOf = T[keyof T]; type NestedValues = T extends object ? ValueOf<{ [K in keyof T]: T[K] extends object ? NestedValues : T[K]; }> : never; type TKey = NestedKeys; type TValue = NestedValues; type ILocale = SdkI18nNamespaces; type DeepPartial = { [K in keyof T]?: T[K] extends object ? DeepPartial : T[K]; }; type ILocalePartial = DeepPartial; type ILocaleFunction = (key: TKey, options?: Record) => TValue; export type { ILocale, ILocalePartial, TKey, TValue, ILocaleFunction };