import { InputMetadata, FormMetadata, ButtonMetadata, ComponentState } from '../../components/types';
import * as i0 from "@angular/core";
/**
 * Helper para resolver traducciones i18n en InputMetadata y FormMetadata.
 *
 * @example
 * ```typescript
 * helper = inject(InputI18nHelper);
 *
 * // Resolver un input
 * emailInput = this.helper.resolveInput({
 *   ...baseEmailInput,
 *   labelKey: 'email',
 *   placeholderKey: 'emailPlaceholder',
 *   errorKeys: { required: 'emailRequired', email: 'emailInvalid' },
 *   i18nNamespace: '_auth',
 * });
 *
 * // Resolver un form completo
 * loginForm = this.helper.resolveForm(loginFormConfig);
 * ```
 */
export declare class InputI18nHelper {
    private i18n;
    /**
     * Resuelve traducciones para un InputMetadata.
     * Si hay keys de i18n, las resuelve; sino, usa los valores directos.
     */
    resolveInput(input: InputMetadataWithI18n): InputMetadata;
    /**
     * Resuelve traducciones para un FormMetadata completo.
     * Lee i18n.lang() para crear dependencia reactiva con computed().
     */
    resolveForm(form: FormMetadataWithI18n): FormMetadata;
    /**
     * Resuelve traducciones para un ButtonMetadata.
     */
    resolveButton(button: ButtonMetadataWithI18n, namespace?: string): ButtonMetadata;
    /**
     * Resuelve un mapa de error keys a mensajes traducidos.
     */
    private resolveErrors;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputI18nHelper, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<InputI18nHelper>;
}
export interface InputMetadataWithI18n extends Partial<InputMetadata> {
    i18nNamespace?: string;
    labelKey?: string;
    placeholderKey?: string;
    hintKey?: string;
    errorKeys?: Record<string, string>;
}
export interface FormSectionWithI18n {
    name?: string;
    nameKey?: string;
    order: number;
    fields: InputMetadataWithI18n[];
}
export interface FormMetadataWithI18n {
    name?: string;
    nameKey?: string;
    i18nNamespace?: string;
    sections: FormSectionWithI18n[];
    actions: ButtonMetadataWithI18n;
    state: ComponentState;
}
export interface ButtonMetadataWithI18n extends Partial<ButtonMetadata> {
    i18nNamespace?: string;
    textKey?: string;
}
