/** * `@nifrajs/web-react/i18n` - React bindings for `@nifrajs/i18n`. `` builds a * `Formatter` (memoized) and provides it; `useT()` reads it. Both `locale` + `messages` are * serializable, so a loader returns them, the page renders with the negotiated catalog on the server, * and the client rebuilds the same formatter from the same props (no mismatch). Imports only `react` + * `@nifrajs/i18n`; no JSX (the package builds with plain `tsc`). */ import { type Formatter, type Messages } from "@nifrajs/i18n"; import { type ReactNode } from "react"; export interface I18nProviderProps { readonly locale: string; readonly messages: Messages; readonly children?: ReactNode; } /** Provide a {@link Formatter} (built from `locale` + `messages`) to the subtree. Memoized on * `locale`/`messages`, so switching locale rebuilds it and re-renders consumers. */ export declare function I18nProvider(props: I18nProviderProps): ReactNode; /** Read the current {@link Formatter} (`{ locale, t, n, d }`). Throws if no `` is above. */ export declare function useT(): Formatter; //# sourceMappingURL=i18n.d.ts.map