/** * i18n Generator * * Generates internationalization keys and messages for a module. */ import { FrontendField, FrontendRelationship, I18nKeySet, NameTransforms } from "../types/template-data.interface"; /** * Generate complete i18n key set for a module * * @param names - Name transforms * @param fields - Array of frontend fields * @param relationships - Array of frontend relationships * @returns i18n key set */ export declare function generateI18nKeys(names: NameTransforms, fields: FrontendField[], relationships: FrontendRelationship[]): I18nKeySet; /** * Build the i18n message object to merge into en.json * * @param i18nKeys - i18n key set * @returns Object structure for en.json */ export declare function buildI18nMessages(i18nKeys: I18nKeySet): Record; /** * Get the translation key path for a field label * * @param moduleName - Module name (lowercase) * @param fieldName - Field name * @returns Translation key path */ export declare function getFieldLabelKey(moduleName: string, fieldName: string): string; /** * Get the translation key path for a field placeholder * * @param moduleName - Module name (lowercase) * @param fieldName - Field name * @returns Translation key path */ export declare function getFieldPlaceholderKey(moduleName: string, fieldName: string): string; /** * Get the translation key path for a field error * * @param moduleName - Module name (lowercase) * @param fieldName - Field name * @returns Translation key path */ export declare function getFieldErrorKey(moduleName: string, fieldName: string): string; /** * Get the translation key path for type pluralization * * @param pluralKebab - Plural kebab-case name * @returns Translation key path */ export declare function getTypeKey(pluralKebab: string): string; /** * Generate translation call for use in templates * * @param keyPath - Full translation key path * @param params - Optional parameters for ICU messages * @returns Translation function call as string */ export declare function generateTranslationCall(keyPath: string, params?: Record): string; /** * Merge i18n messages into existing messages object * This performs a deep merge, preserving existing keys * * @param existing - Existing messages object * @param newMessages - New messages to merge * @returns Merged messages object */ export declare function mergeI18nMessages(existing: Record, newMessages: Record): Record; /** * Sort object keys alphabetically (for consistent output) * * @param obj - Object to sort * @returns New object with sorted keys */ export declare function sortObjectKeys(obj: Record): Record; //# sourceMappingURL=i18n-generator.d.ts.map