import ICondition from "./ICondition";
import IDataContainer from "./IDataContainer";
import IField, { FieldDataType } from "./IField";
import IFormDefinition from "./IFormDefinition";
export default class FieldUtilities {
    static getFieldValueAsBoolean(name: string, defaultValue: boolean, container: IDataContainer): boolean;
    static getSubForm(field: IField): Promise<IFormDefinition | undefined>;
    static getFieldValue(field: IField, container: IDataContainer): any;
    static getFieldTitle(field: IField): string;
    static getFieldId(field: IField): string;
    static getFieldById(id: string, form: IFormDefinition): IField;
    /**
     * Legacy numeric-to-string mapping for FieldDataType.
     * Some form.json files still contain numeric dataType values from that era.
     * This map converts them to the current string-based FieldDataType values.
     */
    private static readonly _legacyNumericDataTypeMap;
    /**
     * Converts a legacy numeric FieldDataType value to its string equivalent.
     * If the value is already a string, returns it as-is.
     */
    static normalizeFieldDataType(dataType: FieldDataType | number): FieldDataType;
    /**
     * Normalizes all numeric dataType values in a form definition (and its nested
     * subForms/alternates) to string-based FieldDataType values.
     */
    static normalizeFormFieldDataTypes(form: IFormDefinition): void;
    private static normalizeFieldDataTypes;
    static getStringKeyedFieldType(fieldType: FieldDataType): FieldDataType.int | FieldDataType.float | FieldDataType.stringEnum | FieldDataType.intEnum | FieldDataType.intBoolean | FieldDataType.stringLookup | FieldDataType.intValueLookup | FieldDataType.long | FieldDataType.point3 | FieldDataType.intPoint3 | FieldDataType.longFormString | FieldDataType.keyedObjectCollection | FieldDataType.objectArray | FieldDataType.intRange | FieldDataType.floatRange | FieldDataType.minecraftFilter | FieldDataType.percentRange | FieldDataType.minecraftEventTrigger | FieldDataType.longFormStringArray | FieldDataType.keyedStringCollection | FieldDataType.version | FieldDataType.uuid | FieldDataType.keyedBooleanCollection | FieldDataType.keyedStringArrayCollection | FieldDataType.arrayOfKeyedStringCollection | FieldDataType.keyedKeyedStringArrayCollection | FieldDataType.keyedNumberCollection | FieldDataType.checkboxListAsStringArray | FieldDataType.molang | FieldDataType.molangArray | FieldDataType.point2 | FieldDataType.localizableString | FieldDataType.keyedNumberArrayCollection | FieldDataType.minecraftEventReference | FieldDataType.location | FieldDataType.locationOffset | FieldDataType.minecraftEventTriggerArray | FieldDataType.twoDStringArray | FieldDataType.stringOrObjectArray | FieldDataType.stringNumberTupleArray | FieldDataType.stringOrObject | FieldDataType.twoDMolangArray;
    static evaluate(form: IFormDefinition, conditions: ICondition[], container: IDataContainer, defaultField?: IField): boolean;
}
