//#region src/index.d.ts
type NestedMessages = {
  readonly [key: string]: string | NestedMessages;
};
interface I18n<L extends string = string> {
  locales: readonly L[];
  defaultLocale: L;
  messages: Record<L, NestedMessages>;
}
declare class I18nConfigError extends Error {
  readonly offending: Record<string, unknown>;
  constructor(message: string, offending: Record<string, unknown>);
}
declare function createI18n<L extends string>(config: I18n<L>): I18n<L>;
declare function t<L extends string>(i18n: I18n<L>, locale: L, key: string, vars?: Record<string, string | number>): string;
declare function resolveLocale<L extends string>(i18n: I18n<L>, request: Request): L;
//#endregion
export { I18n, I18nConfigError, NestedMessages, createI18n, resolveLocale, t };