/**
 * FormField is a JavaScript class representation of JSON form field declaration
 *
 * Note: we're just assembling every possible configuration into a flat structure here
 * This introduces properties that might have nothing to do with a particular field type
 * Example: only a select field uses the "choices" property, but it's there for all fields.
 * Some inheritance might have fixed this, but would also introduce additional complexity
 *   as we tried to determine the correct field type from various field properties
 *
 * So, right now we aren't doing anything about that!
 */
import DisplayMode from '../../classes/display-mode';
import { Statement } from '../inputs/conditional-visibility';
import { DfForm } from '../namespace';
import RenderParams from './field-render-params';
export default class FormField {
    private fieldDef;
    uuid: string;
    name: string;
    label: string;
    placeholder: string;
    align: string;
    visibility: DisplayMode;
    renderParams: RenderParams;
    readOnly: boolean;
    componentName: string;
    helpText: string;
    choices: DfForm.ChoicesJSON[];
    ajax: DfForm.AJAXJSON;
    widthClasses: string;
    allowNull: boolean;
    renderKey: number;
    conditionalVisibility: Statement;
    constructor(fieldDef: DfForm.FormFieldJSON);
    get isVisible(): boolean;
    setVisibility(visibility: number): void;
}
//# sourceMappingURL=field.d.ts.map