import { DataField } from '../../models/abstract-data-field';
import { Behavior } from '../../models/behavior';
import { Layout } from '../../models/layout';
import { Validation } from '../../models/validation';
import { Component } from '../../models/component';
import { I18nFieldTranslations, I18nFieldValue } from './i18n-field-value';
import { Observable } from 'rxjs';
import { FormControl, ValidatorFn } from '@angular/forms';
export declare enum I18nFieldValidation {
    TRANSLATION_REQUIRED = "translationRequired",
    TRANSLATION_ONLY = "translationOnly",
    REQUIRED_I18N = "requiredI18n"
}
export declare const DEFAULT_LANGUAGE_CODE = "xx";
export declare class I18nField extends DataField<I18nFieldValue> {
    getTypedComponentType(): string;
    private static defaultValueNonEquality;
    private static keyNonEquality;
    private static translationsNonEquality;
    private static translationsEquality;
    static toObject(templateValue: I18nFieldValue): I18nFieldTranslations;
    static fromObject(templateValue: I18nFieldTranslations, templateKey: string): I18nFieldValue;
    constructor(stringId: string, title: string, value: I18nFieldValue | string, behavior: Behavior, placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, _component?: Component);
    protected valueEquality(a: I18nFieldValue, b: I18nFieldValue): boolean;
    get updated(): Observable<void>;
    protected calculateValidity(forValidRequired: boolean, formControl: FormControl): boolean;
    protected resolveFormControlValidators(): Array<ValidatorFn>;
    protected resolveValidations(): Array<ValidatorFn>;
    private validTranslationRequired;
    private validTranslationOnly;
    private validRequiredI18n;
}
