/** * @oshon-ai/primitives — i18n message-slot skeleton. * * Phase 3a ships the *contract* so primitives never inline user-visible * strings (principle #11). A full `LocaleContext` + ICU-powered runtime * lands in Phase 5; for now primitives take a `messages` prop and read * keys through `resolveMessage()`. Default text lives at the call site * with the primitive and is the English fallback. */ /** * Shape of the `messages` prop every primitive exposes. Keys are * primitive-specific and documented in each manifest's `slots`. */ export type MessageBag = Readonly>; /** * Resolve a message key against a (possibly undefined) override bag, * falling back to the supplied default. Primitives call this for every * user-visible string. * * @example * const closeLabel = resolveMessage(messages, 'close', 'Close'); */ export declare function resolveMessage(messages: MessageBag | undefined, key: string, defaultValue: string): string; //# sourceMappingURL=i18n.d.ts.map