You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					1202 lines
				
				31 KiB
			
		
		
			
		
	
	
					1202 lines
				
				31 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
							 | 
						||
| 
								 | 
							
								type MergeBy<T, K> = Omit<T, keyof K> & K;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface FallbackLngObjList {
							 | 
						||
| 
								 | 
							
								  [language: string]: readonly string[];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type FallbackLng =
							 | 
						||
| 
								 | 
							
								  | string
							 | 
						||
| 
								 | 
							
								  | readonly string[]
							 | 
						||
| 
								 | 
							
								  | FallbackLngObjList
							 | 
						||
| 
								 | 
							
								  | ((code: string) => string | readonly string[] | FallbackLngObjList);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type FormatFunction = (
							 | 
						||
| 
								 | 
							
								  value: any,
							 | 
						||
| 
								 | 
							
								  format?: string,
							 | 
						||
| 
								 | 
							
								  lng?: string,
							 | 
						||
| 
								 | 
							
								  options?: InterpolationOptions & { [key: string]: any },
							 | 
						||
| 
								 | 
							
								) => string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface InterpolationOptions {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Format function see formatting for details
							 | 
						||
| 
								 | 
							
								   * @default noop
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  format?: FormatFunction;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Used to separate format from interpolation value
							 | 
						||
| 
								 | 
							
								   * @default ','
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  formatSeparator?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Escape function
							 | 
						||
| 
								 | 
							
								   * @default str => str
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  escape?(str: string): string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Always format interpolated values.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  alwaysFormat?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Escape passed in values to avoid xss injection
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  escapeValue?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * If true, then value passed into escape function is not casted to string, use with custom escape function that does its own type check
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  useRawValueToEscape?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prefix for interpolation
							 | 
						||
| 
								 | 
							
								   * @default '{{'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  prefix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Suffix for interpolation
							 | 
						||
| 
								 | 
							
								   * @default '}}'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  suffix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Escaped prefix for interpolation (regexSafe)
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  prefixEscaped?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Escaped suffix for interpolation (regexSafe)
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  suffixEscaped?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Suffix to unescaped mode
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  unescapeSuffix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prefix to unescaped mode
							 | 
						||
| 
								 | 
							
								   * @default '-'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  unescapePrefix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prefix for nesting
							 | 
						||
| 
								 | 
							
								   * @default '$t('
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nestingPrefix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Suffix for nesting
							 | 
						||
| 
								 | 
							
								   * @default ')'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nestingSuffix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Escaped prefix for nesting (regexSafe)
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nestingPrefixEscaped?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Escaped suffix for nesting (regexSafe)
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nestingSuffixEscaped?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Separates options from key
							 | 
						||
| 
								 | 
							
								   * @default ','
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nestingOptionsSeparator?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Global variables to use in interpolation replacements
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  defaultVariables?: { [index: string]: any };
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * After how many interpolation runs to break out before throwing a stack overflow
							 | 
						||
| 
								 | 
							
								   * @default 1000
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  maxReplaces?: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * If true, it will skip to interpolate the variables
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  skipOnVariables?: boolean;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface ReactOptions {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set it to fallback to let passed namespaces to translated hoc act as fallbacks
							 | 
						||
| 
								 | 
							
								   * @default 'default'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nsMode?: 'default' | 'fallback';
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set it to the default parent element created by the Trans component.
							 | 
						||
| 
								 | 
							
								   * @default 'div'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  defaultTransParent?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set which events trigger a re-render, can be set to false or string of events
							 | 
						||
| 
								 | 
							
								   * @default 'languageChanged'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  bindI18n?: string | false;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set which events on store trigger a re-render, can be set to false or string of events
							 | 
						||
| 
								 | 
							
								   * @default ''
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  bindI18nStore?: string | false;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set fallback value for Trans components without children
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  transEmptyNodeValue?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set it to false if you do not want to use Suspense
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  useSuspense?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Function to generate an i18nKey from the defaultValue (or Trans children)
							 | 
						||
| 
								 | 
							
								   * when no key is provided.
							 | 
						||
| 
								 | 
							
								   * By default, the defaultValue (Trans text) itself is used as the key.
							 | 
						||
| 
								 | 
							
								   * If you want to require keys for all translations, supply a function
							 | 
						||
| 
								 | 
							
								   * that always throws an error.
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  hashTransKey?(defaultValue: TOptionsBase['defaultValue']): TOptionsBase['defaultValue'];
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Convert eg. <br/> found in translations to a react component of type br
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  transSupportBasicHtmlNodes?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Which nodes not to convert in defaultValue generation in the Trans component.
							 | 
						||
| 
								 | 
							
								   * @default ['br', 'strong', 'i', 'p']
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  transKeepBasicHtmlNodesFor?: readonly string[];
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Wrap text nodes in a user-specified element.
							 | 
						||
| 
								 | 
							
								   * @default ''
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  transWrapTextNodes?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Optional keyPrefix that will be automatically applied to returned t function in useTranslation for example.
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  keyPrefix?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Unescape function
							 | 
						||
| 
								 | 
							
								   * by default it unescapes some basic html entities
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  unescape?(str: string): string;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * This interface can be augmented by users to add types to `i18next` default PluginOptions.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface PluginOptions {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface DefaultPluginOptions {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Options for language detection - check documentation of plugin
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  detection?: object;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Options for backend - check documentation of plugin
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  backend?: object;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Options for cache layer - check documentation of plugin
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  cache?: object;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Options for i18n message format - check documentation of plugin
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  i18nFormat?: object;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface InitOptions extends MergeBy<DefaultPluginOptions, PluginOptions> {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Logs info level to console output. Helps finding issues with loading not working.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  debug?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Resources to initialize with (if not using loading or not appending using addResourceBundle)
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  resources?: Resource;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Allow initializing with bundled resources while using a backend to load non bundled ones.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  partialBundledLanguages?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Language to use (overrides language detection)
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  lng?: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Language to use if translations in user language are not available.
							 | 
						||
| 
								 | 
							
								   * @default 'dev'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  fallbackLng?: false | FallbackLng;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Array of allowed languages
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  supportedLngs?: false | readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * If true will pass eg. en-US if finding en in supportedLngs
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nonExplicitSupportedLngs?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Language codes to lookup, given set language is
							 | 
						||
| 
								 | 
							
								   * 'en-US': 'all' --> ['en-US', 'en', 'dev'],
							 | 
						||
| 
								 | 
							
								   * 'currentOnly' --> 'en-US',
							 | 
						||
| 
								 | 
							
								   * 'languageOnly' --> 'en'
							 | 
						||
| 
								 | 
							
								   * @default 'all'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  load?: 'all' | 'currentOnly' | 'languageOnly';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Array of languages to preload. Important on server-side to assert translations are loaded before rendering views.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  preload?: false | readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Language will be lowercased eg. en-US --> en-us
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  lowerCaseLng?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Language will be lowercased EN --> en while leaving full locales like en-US
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  cleanCode?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * String or array of namespaces to load
							 | 
						||
| 
								 | 
							
								   * @default 'translation'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  ns?: string | readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Default namespace used if not passed to translation function
							 | 
						||
| 
								 | 
							
								   * @default 'translation'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  defaultNS?: string | false | readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * String or array of namespaces to lookup key if not found in given namespace.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  fallbackNS?: false | string | readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Calls save missing key function on backend if key not found.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  saveMissing?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Calls save missing key function on backend if key not found also for plural forms.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  saveMissingPlurals?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Experimental: enable to update default values using the saveMissing
							 | 
						||
| 
								 | 
							
								   * (Works only if defaultValue different from translated value.
							 | 
						||
| 
								 | 
							
								   * Only useful on initial development or when keeping code as source of truth not changing values outside of code.
							 | 
						||
| 
								 | 
							
								   * Only supported if backend supports it already)
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  updateMissing?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * @default 'fallback'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  saveMissingTo?: 'current' | 'all' | 'fallback';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Used to not fallback to the key as default value, when using saveMissing functionality.
							 | 
						||
| 
								 | 
							
								   * i.e. when using with i18next-http-backend this will result in having a key with an empty string value.
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  missingKeyNoValueFallbackToKey?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Used for custom missing key handling (needs saveMissing set to true!)
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  missingKeyHandler?:
							 | 
						||
| 
								 | 
							
								    | false
							 | 
						||
| 
								 | 
							
								    | ((
							 | 
						||
| 
								 | 
							
								        lngs: readonly string[],
							 | 
						||
| 
								 | 
							
								        ns: string,
							 | 
						||
| 
								 | 
							
								        key: string,
							 | 
						||
| 
								 | 
							
								        fallbackValue: string,
							 | 
						||
| 
								 | 
							
								        updateMissing: boolean,
							 | 
						||
| 
								 | 
							
								        options: any,
							 | 
						||
| 
								 | 
							
								      ) => void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Receives a key that was not found in `t()` and returns a value, that will be returned by `t()`
							 | 
						||
| 
								 | 
							
								   * @default noop
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  parseMissingKeyHandler?(key: string, defaultValue?: string): any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Appends namespace to missing key
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  appendNamespaceToMissingKey?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets called in case a interpolation value is undefined. This method will not be called if the value is empty string or null
							 | 
						||
| 
								 | 
							
								   * @default noop
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  missingInterpolationHandler?: (text: string, value: any, options: InitOptions) => any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Will use 'plural' as suffix for languages only having 1 plural form, setting it to false will suffix all with numbers
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  simplifyPluralSuffix?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * String or array of postProcessors to apply per default
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  postProcess?: false | string | readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * passthrough the resolved object including 'usedNS', 'usedLang' etc into options object of postprocessors as 'i18nResolved' property
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  postProcessPassResolved?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Allows null values as valid translation
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnNull?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Allows empty string as valid translation
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnEmptyString?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Allows objects as valid translation result
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnObjects?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns an object that includes information about the used language, namespace, key and value
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnDetails?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets called if object was passed in as key but returnObjects was set to false
							 | 
						||
| 
								 | 
							
								   * @default noop
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnedObjectHandler?(key: string, value: string, options: any): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Char, eg. '\n' that arrays will be joined by
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  joinArrays?: false | string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Sets defaultValue
							 | 
						||
| 
								 | 
							
								   * @default args => ({ defaultValue: args[1] })
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  overloadTranslationOptionHandler?(args: string[]): TOptions;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * @see https://www.i18next.com/interpolation.html
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  interpolation?: InterpolationOptions;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Options for react - check documentation of plugin
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  react?: ReactOptions;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Triggers resource loading in init function inside a setTimeout (default async behaviour).
							 | 
						||
| 
								 | 
							
								   * Set it to false if your backend loads resources sync - that way calling i18next.t after
							 | 
						||
| 
								 | 
							
								   * init is possible without relaying on the init callback.
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  initImmediate?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Char to separate keys
							 | 
						||
| 
								 | 
							
								   * @default '.'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  keySeparator?: false | string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Char to split namespace from key
							 | 
						||
| 
								 | 
							
								   * @default ':'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nsSeparator?: false | string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Char to split plural from key
							 | 
						||
| 
								 | 
							
								   * @default '_'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  pluralSeparator?: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Char to split context from key
							 | 
						||
| 
								 | 
							
								   * @default '_'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  contextSeparator?: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prefixes the namespace to the returned key when using `cimode`
							 | 
						||
| 
								 | 
							
								   * @default false
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  appendNamespaceToCIMode?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Compatibility JSON version
							 | 
						||
| 
								 | 
							
								   * @default 'v4'
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  compatibilityJSON?: 'v1' | 'v2' | 'v3' | 'v4';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Options for https://github.com/locize/locize-lastused
							 | 
						||
| 
								 | 
							
								   * @default undefined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  locizeLastUsed?: {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * The id of your locize project
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    projectId: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * An api key if you want to send missing keys
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    apiKey?: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * The reference language of your project
							 | 
						||
| 
								 | 
							
								     * @default 'en'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    referenceLng?: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Version
							 | 
						||
| 
								 | 
							
								     * @default 'latest'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    version?: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Debounce interval to send data in milliseconds
							 | 
						||
| 
								 | 
							
								     * @default 90000
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    debounceSubmit?: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Hostnames that are allowed to send last used data.
							 | 
						||
| 
								 | 
							
								     * Please keep those to your local system, staging, test servers (not production)
							 | 
						||
| 
								 | 
							
								     * @default ['localhost']
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    allowedHosts?: readonly string[];
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Automatically lookup for a flat key if a nested key is not found an vice-versa
							 | 
						||
| 
								 | 
							
								   * @default true
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  ignoreJSONStructure?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Limit parallelism of calls to backend
							 | 
						||
| 
								 | 
							
								   * This is needed to prevent trying to open thousands of
							 | 
						||
| 
								 | 
							
								   * sockets or file descriptors, which can cause failures
							 | 
						||
| 
								 | 
							
								   * and actually make the entire process take longer.
							 | 
						||
| 
								 | 
							
								   * @default 10
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  maxParallelReads?: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The maximum number of retries to perform.
							 | 
						||
| 
								 | 
							
								   * Note that retries are only performed when a request has no response
							 | 
						||
| 
								 | 
							
								   * and throws an error.
							 | 
						||
| 
								 | 
							
								   * The default value is used if value is set below 0.
							 | 
						||
| 
								 | 
							
								   * @default 5
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  maxRetries?: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Set how long to wait, in milliseconds, betweeen retries of failed requests.
							 | 
						||
| 
								 | 
							
								   * This number is compounded by a factor of 2 for subsequent retry.
							 | 
						||
| 
								 | 
							
								   * The default value is used if value is set below 1ms.
							 | 
						||
| 
								 | 
							
								   * @default 350
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  retryTimeout?: number;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface TOptionsBase {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Default value to return if a translation was not found
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  defaultValue?: any;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Count value used for plurals
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  count?: number;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Used for contexts (eg. male\female)
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  context?: any;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Object with vars for interpolation - or put them directly in options
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  replace?: any;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override language to use
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  lng?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override languages to use
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  lngs?: readonly string[];
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override language to lookup key if not found see fallbacks for details
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  fallbackLng?: FallbackLng;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override namespaces (string or array)
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  ns?: string | readonly string[];
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override char to separate keys
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  keySeparator?: false | string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override char to split namespace from key
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  nsSeparator?: false | string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Accessing an object not a translation string (can be set globally too)
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnObjects?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns an object that includes information about the used language, namespace, key and value
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  returnDetails?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Char, eg. '\n' that arrays will be joined by (can be set globally too)
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  joinArrays?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * String or array of postProcessors to apply see interval plurals as a sample
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  postProcess?: string | readonly string[];
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Override interpolation options
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  interpolation?: InterpolationOptions;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * indexer that is open to any value
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export type StringMap = { [key: string]: any };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Options that allow open ended values for interpolation unless type is provided.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export type TOptions<TInterpolationMap extends object = StringMap> = TOptionsBase &
							 | 
						||
| 
								 | 
							
								  TInterpolationMap;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type Callback = (error: any, t: TFunction) => void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Uses similar args as the t function and returns true if a key exists.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface ExistsFunction<
							 | 
						||
| 
								 | 
							
								  TKeys extends string = string,
							 | 
						||
| 
								 | 
							
								  TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								> {
							 | 
						||
| 
								 | 
							
								  (key: TKeys | TKeys[], options?: TOptions<TInterpolationMap>): boolean;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface WithT {
							 | 
						||
| 
								 | 
							
								  // Expose parameterized t in the i18next interface hierarchy
							 | 
						||
| 
								 | 
							
								  t: TFunction;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Object returned from t() function when passed returnDetails: true option.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export type TFunctionDetailedResult<T = string> = {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The plain used key
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  usedKey: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The translation result.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  res: T;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The key with context / plural
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  exactUsedKey: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The used language for this translation.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  usedLng: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The used namespace for this translation.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  usedNS: string;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								export type TFunctionResult =
							 | 
						||
| 
								 | 
							
								  | string
							 | 
						||
| 
								 | 
							
								  | object
							 | 
						||
| 
								 | 
							
								  | TFunctionDetailedResult
							 | 
						||
| 
								 | 
							
								  | Array<string | object>
							 | 
						||
| 
								 | 
							
								  | undefined
							 | 
						||
| 
								 | 
							
								  | null;
							 | 
						||
| 
								 | 
							
								export type TFunctionKeys = string | TemplateStringsArray;
							 | 
						||
| 
								 | 
							
								export interface TFunction {
							 | 
						||
| 
								 | 
							
								  // basic usage
							 | 
						||
| 
								 | 
							
								  <
							 | 
						||
| 
								 | 
							
								    TResult extends TFunctionResult = string,
							 | 
						||
| 
								 | 
							
								    TKeys extends TFunctionKeys = string,
							 | 
						||
| 
								 | 
							
								    TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								  >(
							 | 
						||
| 
								 | 
							
								    key: TKeys | TKeys[],
							 | 
						||
| 
								 | 
							
								  ): TResult;
							 | 
						||
| 
								 | 
							
								  <
							 | 
						||
| 
								 | 
							
								    TResult extends TFunctionResult = TFunctionDetailedResult<object>,
							 | 
						||
| 
								 | 
							
								    TKeys extends TFunctionKeys = string,
							 | 
						||
| 
								 | 
							
								    TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								  >(
							 | 
						||
| 
								 | 
							
								    key: TKeys | TKeys[],
							 | 
						||
| 
								 | 
							
								    options?: TOptions<TInterpolationMap> & { returnDetails: true; returnObjects: true },
							 | 
						||
| 
								 | 
							
								  ): TResult;
							 | 
						||
| 
								 | 
							
								  <
							 | 
						||
| 
								 | 
							
								    TResult extends TFunctionResult = TFunctionDetailedResult,
							 | 
						||
| 
								 | 
							
								    TKeys extends TFunctionKeys = string,
							 | 
						||
| 
								 | 
							
								    TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								  >(
							 | 
						||
| 
								 | 
							
								    key: TKeys | TKeys[],
							 | 
						||
| 
								 | 
							
								    options?: TOptions<TInterpolationMap> & { returnDetails: true },
							 | 
						||
| 
								 | 
							
								  ): TResult;
							 | 
						||
| 
								 | 
							
								  <
							 | 
						||
| 
								 | 
							
								    TResult extends TFunctionResult = object,
							 | 
						||
| 
								 | 
							
								    TKeys extends TFunctionKeys = string,
							 | 
						||
| 
								 | 
							
								    TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								  >(
							 | 
						||
| 
								 | 
							
								    key: TKeys | TKeys[],
							 | 
						||
| 
								 | 
							
								    options?: TOptions<TInterpolationMap> & { returnObjects: true },
							 | 
						||
| 
								 | 
							
								  ): TResult;
							 | 
						||
| 
								 | 
							
								  <
							 | 
						||
| 
								 | 
							
								    TResult extends TFunctionResult = string,
							 | 
						||
| 
								 | 
							
								    TKeys extends TFunctionKeys = string,
							 | 
						||
| 
								 | 
							
								    TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								  >(
							 | 
						||
| 
								 | 
							
								    key: TKeys | TKeys[],
							 | 
						||
| 
								 | 
							
								    options?: TOptions<TInterpolationMap> | string,
							 | 
						||
| 
								 | 
							
								  ): TResult;
							 | 
						||
| 
								 | 
							
								  // overloaded usage
							 | 
						||
| 
								 | 
							
								  <
							 | 
						||
| 
								 | 
							
								    TResult extends TFunctionResult = string,
							 | 
						||
| 
								 | 
							
								    TKeys extends TFunctionKeys = string,
							 | 
						||
| 
								 | 
							
								    TInterpolationMap extends object = StringMap,
							 | 
						||
| 
								 | 
							
								  >(
							 | 
						||
| 
								 | 
							
								    key: TKeys | TKeys[],
							 | 
						||
| 
								 | 
							
								    defaultValue?: string,
							 | 
						||
| 
								 | 
							
								    options?: TOptions<TInterpolationMap> | string,
							 | 
						||
| 
								 | 
							
								  ): TResult;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface Resource {
							 | 
						||
| 
								 | 
							
								  [language: string]: ResourceLanguage;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface ResourceLanguage {
							 | 
						||
| 
								 | 
							
								  [namespace: string]: ResourceKey;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type ResourceKey =
							 | 
						||
| 
								 | 
							
								  | string
							 | 
						||
| 
								 | 
							
								  | {
							 | 
						||
| 
								 | 
							
								      [key: string]: any;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface Interpolator {
							 | 
						||
| 
								 | 
							
								  init(options: InterpolationOptions, reset: boolean): undefined;
							 | 
						||
| 
								 | 
							
								  reset(): undefined;
							 | 
						||
| 
								 | 
							
								  resetRegExp(): undefined;
							 | 
						||
| 
								 | 
							
								  interpolate(str: string, data: object, lng: string, options: InterpolationOptions): string;
							 | 
						||
| 
								 | 
							
								  nest(str: string, fc: (...args: any[]) => any, options: InterpolationOptions): string;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export class ResourceStore {
							 | 
						||
| 
								 | 
							
								  constructor(data: Resource, options: InitOptions);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  public data: Resource;
							 | 
						||
| 
								 | 
							
								  public options: InitOptions;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired when resources got added or removed
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(event: 'added' | 'removed', callback: (lng: string, ns: string) => void): void;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Remove event listener
							 | 
						||
| 
								 | 
							
								   * removes all callback when callback not specified
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  off(event: 'added' | 'removed', callback?: (lng: string, ns: string) => void): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface Formatter {
							 | 
						||
| 
								 | 
							
								  init(services: Services, i18nextOptions: InitOptions): void;
							 | 
						||
| 
								 | 
							
								  add(name: string, fc: (value: any, lng: string | undefined, options: any) => string): void;
							 | 
						||
| 
								 | 
							
								  format: FormatFunction;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface Services {
							 | 
						||
| 
								 | 
							
								  backendConnector: any;
							 | 
						||
| 
								 | 
							
								  i18nFormat: any;
							 | 
						||
| 
								 | 
							
								  interpolator: Interpolator;
							 | 
						||
| 
								 | 
							
								  languageDetector: any;
							 | 
						||
| 
								 | 
							
								  languageUtils: any;
							 | 
						||
| 
								 | 
							
								  logger: any;
							 | 
						||
| 
								 | 
							
								  pluralResolver: any;
							 | 
						||
| 
								 | 
							
								  resourceStore: ResourceStore;
							 | 
						||
| 
								 | 
							
								  formatter?: Formatter;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type ModuleType =
							 | 
						||
| 
								 | 
							
								  | 'backend'
							 | 
						||
| 
								 | 
							
								  | 'logger'
							 | 
						||
| 
								 | 
							
								  | 'languageDetector'
							 | 
						||
| 
								 | 
							
								  | 'postProcessor'
							 | 
						||
| 
								 | 
							
								  | 'i18nFormat'
							 | 
						||
| 
								 | 
							
								  | 'formatter'
							 | 
						||
| 
								 | 
							
								  | '3rdParty';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface Module {
							 | 
						||
| 
								 | 
							
								  type: ModuleType;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type CallbackError = Error | null | undefined;
							 | 
						||
| 
								 | 
							
								export type ReadCallback = (
							 | 
						||
| 
								 | 
							
								  err: CallbackError,
							 | 
						||
| 
								 | 
							
								  data: ResourceKey | boolean | null | undefined,
							 | 
						||
| 
								 | 
							
								) => void;
							 | 
						||
| 
								 | 
							
								export type MultiReadCallback = (err: CallbackError, data: Resource | null | undefined) => void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Used to load data for i18next.
							 | 
						||
| 
								 | 
							
								 * Can be provided as a singleton or as a prototype constructor (preferred for supporting multiple instances of i18next).
							 | 
						||
| 
								 | 
							
								 * For singleton set property `type` to `'backend'` For a prototype constructor set static property.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface BackendModule<TOptions = object> extends Module {
							 | 
						||
| 
								 | 
							
								  type: 'backend';
							 | 
						||
| 
								 | 
							
								  init(services: Services, backendOptions: TOptions, i18nextOptions: InitOptions): void;
							 | 
						||
| 
								 | 
							
								  read(language: string, namespace: string, callback: ReadCallback): void;
							 | 
						||
| 
								 | 
							
								  /** Save the missing translation */
							 | 
						||
| 
								 | 
							
								  create?(
							 | 
						||
| 
								 | 
							
								    languages: readonly string[],
							 | 
						||
| 
								 | 
							
								    namespace: string,
							 | 
						||
| 
								 | 
							
								    key: string,
							 | 
						||
| 
								 | 
							
								    fallbackValue: string,
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								  /** Load multiple languages and namespaces. For backends supporting multiple resources loading */
							 | 
						||
| 
								 | 
							
								  readMulti?(
							 | 
						||
| 
								 | 
							
								    languages: readonly string[],
							 | 
						||
| 
								 | 
							
								    namespaces: readonly string[],
							 | 
						||
| 
								 | 
							
								    callback: MultiReadCallback,
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								  /** Store the translation. For backends acting as cache layer */
							 | 
						||
| 
								 | 
							
								  save?(language: string, namespace: string, data: ResourceLanguage): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Used to detect language in user land.
							 | 
						||
| 
								 | 
							
								 * Can be provided as a singleton or as a prototype constructor (preferred for supporting multiple instances of i18next).
							 | 
						||
| 
								 | 
							
								 * For singleton set property `type` to `'languageDetector'` For a prototype constructor set static property.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface LanguageDetectorModule extends Module {
							 | 
						||
| 
								 | 
							
								  type: 'languageDetector';
							 | 
						||
| 
								 | 
							
								  init(services: Services, detectorOptions: object, i18nextOptions: InitOptions): void;
							 | 
						||
| 
								 | 
							
								  /** Must return detected language */
							 | 
						||
| 
								 | 
							
								  detect(): string | readonly string[] | undefined;
							 | 
						||
| 
								 | 
							
								  cacheUserLanguage(lng: string): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Used to detect language in user land.
							 | 
						||
| 
								 | 
							
								 * Can be provided as a singleton or as a prototype constructor (preferred for supporting multiple instances of i18next).
							 | 
						||
| 
								 | 
							
								 * For singleton set property `type` to `'languageDetector'` For a prototype constructor set static property.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface LanguageDetectorAsyncModule extends Module {
							 | 
						||
| 
								 | 
							
								  type: 'languageDetector';
							 | 
						||
| 
								 | 
							
								  /** Set to true to enable async detection */
							 | 
						||
| 
								 | 
							
								  async: true;
							 | 
						||
| 
								 | 
							
								  init(services: Services, detectorOptions: object, i18nextOptions: InitOptions): void;
							 | 
						||
| 
								 | 
							
								  /** Must call callback passing detected language */
							 | 
						||
| 
								 | 
							
								  detect(callback: (lng: string | readonly string[] | undefined) => void): void;
							 | 
						||
| 
								 | 
							
								  cacheUserLanguage(lng: string): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Used to extend or manipulate the translated values before returning them in `t` function.
							 | 
						||
| 
								 | 
							
								 * Need to be a singleton object.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface PostProcessorModule extends Module {
							 | 
						||
| 
								 | 
							
								  /** Unique name */
							 | 
						||
| 
								 | 
							
								  name: string;
							 | 
						||
| 
								 | 
							
								  type: 'postProcessor';
							 | 
						||
| 
								 | 
							
								  process(value: string, key: string, options: TOptions, translator: any): string;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Override the built-in console logger.
							 | 
						||
| 
								 | 
							
								 * Do not need to be a prototype function.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export interface LoggerModule extends Module {
							 | 
						||
| 
								 | 
							
								  type: 'logger';
							 | 
						||
| 
								 | 
							
								  log(...args: any[]): void;
							 | 
						||
| 
								 | 
							
								  warn(...args: any[]): void;
							 | 
						||
| 
								 | 
							
								  error(...args: any[]): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface I18nFormatModule extends Module {
							 | 
						||
| 
								 | 
							
								  type: 'i18nFormat';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface FormatterModule extends Module, Formatter {
							 | 
						||
| 
								 | 
							
								  type: 'formatter';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface ThirdPartyModule extends Module {
							 | 
						||
| 
								 | 
							
								  type: '3rdParty';
							 | 
						||
| 
								 | 
							
								  init(i18next: i18n): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface Modules {
							 | 
						||
| 
								 | 
							
								  backend?: BackendModule;
							 | 
						||
| 
								 | 
							
								  logger?: LoggerModule;
							 | 
						||
| 
								 | 
							
								  languageDetector?: LanguageDetectorModule | LanguageDetectorAsyncModule;
							 | 
						||
| 
								 | 
							
								  i18nFormat?: I18nFormatModule;
							 | 
						||
| 
								 | 
							
								  formatter?: FormatterModule;
							 | 
						||
| 
								 | 
							
								  external: ThirdPartyModule[];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// helper to identify class https://stackoverflow.com/a/45983481/2363935
							 | 
						||
| 
								 | 
							
								export interface Newable<T> {
							 | 
						||
| 
								 | 
							
								  new (...args: any[]): T;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface NewableModule<T extends Module> extends Newable<T> {
							 | 
						||
| 
								 | 
							
								  type: T['type'];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface i18n {
							 | 
						||
| 
								 | 
							
								  // Expose parameterized t in the i18next interface hierarchy
							 | 
						||
| 
								 | 
							
								  t: TFunction;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The default of the i18next module is an i18next instance ready to be initialized by calling init.
							 | 
						||
| 
								 | 
							
								   * You can create additional instances using the createInstance function.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * @param options - Initial options.
							 | 
						||
| 
								 | 
							
								   * @param callback - will be called after all translations were loaded or with an error when failed (in case of using a backend).
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  init(callback?: Callback): Promise<TFunction>;
							 | 
						||
| 
								 | 
							
								  init(options: InitOptions, callback?: Callback): Promise<TFunction>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  loadResources(callback?: (err: any) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The use function is there to load additional plugins to i18next.
							 | 
						||
| 
								 | 
							
								   * For available module see the plugins page and don't forget to read the documentation of the plugin.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * @param module Accepts a class or object
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  use<T extends Module>(module: T | NewableModule<T> | Newable<T>): this;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * List of modules used
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  modules: Modules;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Internal container for all used plugins and implementation details like languageUtils, pluralResolvers, etc.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  services: Services;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Internal container for translation resources
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  store: ResourceStore;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Uses similar args as the t function and returns true if a key exists.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  exists: ExistsFunction;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns a resource data by language.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  getDataByLanguage(lng: string): { [key: string]: { [key: string]: string } } | undefined;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns a t function that defaults to given language or namespace.
							 | 
						||
| 
								 | 
							
								   * Both params could be arrays of languages or namespaces and will be treated as fallbacks in that case.
							 | 
						||
| 
								 | 
							
								   * On the returned function you can like in the t function override the languages or namespaces by passing them in options or by prepending namespace.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * Accepts optional keyPrefix that will be automatically applied to returned t function.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  getFixedT(
							 | 
						||
| 
								 | 
							
								    lng: string | readonly string[],
							 | 
						||
| 
								 | 
							
								    ns?: string | readonly string[],
							 | 
						||
| 
								 | 
							
								    keyPrefix?: string,
							 | 
						||
| 
								 | 
							
								  ): TFunction;
							 | 
						||
| 
								 | 
							
								  getFixedT(lng: null, ns: string | readonly string[] | null, keyPrefix?: string): TFunction;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Changes the language. The callback will be called as soon translations were loaded or an error occurs while loading.
							 | 
						||
| 
								 | 
							
								   * HINT: For easy testing - setting lng to 'cimode' will set t function to always return the key.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  changeLanguage(lng?: string, callback?: Callback): Promise<TFunction>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Is set to the current detected or set language.
							 | 
						||
| 
								 | 
							
								   * If you need the primary used language depending on your configuration (supportedLngs, load) you will prefer using i18next.languages[0].
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  language: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Is set to an array of language-codes that will be used it order to lookup the translation value.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  languages: readonly string[];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Is set to the current resolved language.
							 | 
						||
| 
								 | 
							
								   * It can be used as primary used language, for example in a language switcher.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  resolvedLanguage: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Loads additional namespaces not defined in init options.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  loadNamespaces(ns: string | readonly string[], callback?: Callback): Promise<void>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Loads additional languages not defined in init options (preload).
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  loadLanguages(lngs: string | readonly string[], callback?: Callback): Promise<void>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Reloads resources on given state. Optionally you can pass an array of languages and namespaces as params if you don't want to reload all.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  reloadResources(
							 | 
						||
| 
								 | 
							
								    lngs?: string | readonly string[],
							 | 
						||
| 
								 | 
							
								    ns?: string | readonly string[],
							 | 
						||
| 
								 | 
							
								    callback?: () => void,
							 | 
						||
| 
								 | 
							
								  ): Promise<void>;
							 | 
						||
| 
								 | 
							
								  reloadResources(lngs: null, ns: string | readonly string[], callback?: () => void): Promise<void>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Changes the default namespace.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  setDefaultNamespace(ns: string): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Checks if a namespace has been loaded.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  hasLoadedNamespace(ns: string, options?: Pick<InitOptions, 'fallbackLng'>): boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns rtl or ltr depending on languages read direction.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  dir(lng?: string): 'ltr' | 'rtl';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Exposes interpolation.format function added on init.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  format: FormatFunction;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Will return a new i18next instance.
							 | 
						||
| 
								 | 
							
								   * Please read the options page for details on configuration options.
							 | 
						||
| 
								 | 
							
								   * Providing a callback will automatically call init.
							 | 
						||
| 
								 | 
							
								   * The callback will be called after all translations were loaded or with an error when failed (in case of using a backend).
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  createInstance(options?: InitOptions, callback?: Callback): i18n;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Creates a clone of the current instance. Shares store, plugins and initial configuration.
							 | 
						||
| 
								 | 
							
								   * Can be used to create an instance sharing storage but being independent on set language or namespaces.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  cloneInstance(options?: InitOptions, callback?: Callback): i18n;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired after initialization.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(event: 'initialized', callback: (options: InitOptions) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired on loaded resources.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(
							 | 
						||
| 
								 | 
							
								    event: 'loaded',
							 | 
						||
| 
								 | 
							
								    callback: (loaded: { [language: string]: { [namespace: string]: boolean } }) => void,
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired if loading resources failed.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(event: 'failedLoading', callback: (lng: string, ns: string, msg: string) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired on accessing a key not existing.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(
							 | 
						||
| 
								 | 
							
								    event: 'missingKey',
							 | 
						||
| 
								 | 
							
								    callback: (lngs: readonly string[], namespace: string, key: string, res: string) => void,
							 | 
						||
| 
								 | 
							
								  ): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired when resources got added or removed.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(event: 'added' | 'removed', callback: (lng: string, ns: string) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets fired when changeLanguage got called.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(event: 'languageChanged', callback: (lng: string) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Event listener
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  on(event: string, listener: (...args: any[]) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Remove event listener
							 | 
						||
| 
								 | 
							
								   * removes all callback when callback not specified
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  off(event: string, listener?: (...args: any[]) => void): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Gets one value by given key.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  getResource(
							 | 
						||
| 
								 | 
							
								    lng: string,
							 | 
						||
| 
								 | 
							
								    ns: string,
							 | 
						||
| 
								 | 
							
								    key: string,
							 | 
						||
| 
								 | 
							
								    options?: Pick<InitOptions, 'keySeparator' | 'ignoreJSONStructure'>,
							 | 
						||
| 
								 | 
							
								  ): any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Adds one key/value.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  addResource(
							 | 
						||
| 
								 | 
							
								    lng: string,
							 | 
						||
| 
								 | 
							
								    ns: string,
							 | 
						||
| 
								 | 
							
								    key: string,
							 | 
						||
| 
								 | 
							
								    value: string,
							 | 
						||
| 
								 | 
							
								    options?: { keySeparator?: string; silent?: boolean },
							 | 
						||
| 
								 | 
							
								  ): i18n;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Adds multiple key/values.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  addResources(lng: string, ns: string, resources: any): i18n;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Adds a complete bundle.
							 | 
						||
| 
								 | 
							
								   * Setting deep param to true will extend existing translations in that file.
							 | 
						||
| 
								 | 
							
								   * Setting overwrite to true it will overwrite existing translations in that file.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  addResourceBundle(
							 | 
						||
| 
								 | 
							
								    lng: string,
							 | 
						||
| 
								 | 
							
								    ns: string,
							 | 
						||
| 
								 | 
							
								    resources: any,
							 | 
						||
| 
								 | 
							
								    deep?: boolean,
							 | 
						||
| 
								 | 
							
								    overwrite?: boolean,
							 | 
						||
| 
								 | 
							
								  ): i18n;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Checks if a resource bundle exists.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  hasResourceBundle(lng: string, ns: string): boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns a resource bundle.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  getResourceBundle(lng: string, ns: string): any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Removes an existing bundle.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  removeResourceBundle(lng: string, ns: string): i18n;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Current options
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  options: InitOptions;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Is initialized
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  isInitialized: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Emit event
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  emit(eventName: string): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare const i18next: i18n;
							 | 
						||
| 
								 | 
							
								export default i18next;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export const createInstance: i18n['createInstance'];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export const init: i18n['init'];
							 | 
						||
| 
								 | 
							
								export const loadResources: i18n['loadResources'];
							 | 
						||
| 
								 | 
							
								export const reloadResources: i18n['reloadResources'];
							 | 
						||
| 
								 | 
							
								export const use: i18n['use'];
							 | 
						||
| 
								 | 
							
								export const changeLanguage: i18n['changeLanguage'];
							 | 
						||
| 
								 | 
							
								export const getFixedT: i18n['getFixedT'];
							 | 
						||
| 
								 | 
							
								export const t: i18n['t'];
							 | 
						||
| 
								 | 
							
								export const exists: i18n['exists'];
							 | 
						||
| 
								 | 
							
								export const setDefaultNamespace: i18n['setDefaultNamespace'];
							 | 
						||
| 
								 | 
							
								export const hasLoadedNamespace: i18n['hasLoadedNamespace'];
							 | 
						||
| 
								 | 
							
								export const loadNamespaces: i18n['loadNamespaces'];
							 | 
						||
| 
								 | 
							
								export const loadLanguages: i18n['loadLanguages'];
							 |