/**
 * 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<string, any>;
/**
 * 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, any>): 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<string, any>, newMessages: Record<string, any>): Record<string, any>;
/**
 * Sort object keys alphabetically (for consistent output)
 *
 * @param obj - Object to sort
 * @returns New object with sorted keys
 */
export declare function sortObjectKeys(obj: Record<string, any>): Record<string, any>;
//# sourceMappingURL=i18n-generator.d.ts.map