import { AbstractLayout, Dimension, EventHandler, FormField, HtmlCompPrefSizeOptions, HtmlEnvironment, PropertyChangeEvent, Rectangle } from '../../index';
/**
 * Form-Field Layout, for a form-field with label, status, mandatory-indicator and a field.
 * This layout class works with a FormField instance, since we must access properties of the model.
 * Note: we use optGet() here, since some form-fields have only a bare HTML element as field, other
 * (composite) form-fields work with a HtmlComponent which has its own LayoutManager.
 */
export declare class FormFieldLayout extends AbstractLayout {
    formField: FormField;
    mandatoryIndicatorWidth: number;
    statusWidth: number;
    rowHeight: number;
    compactFieldWidth: number;
    htmlPropertyChangeHandler: EventHandler<PropertyChangeEvent<any, HtmlEnvironment>>;
    constructor(formField: FormField);
    static COMPACT_FIELD_WIDTH: number;
    protected _initDefaults(): void;
    protected _onHtmlEnvironmentPropertyChange(): void;
    layout($container: JQuery): void;
    protected _isLabelVisible(): boolean;
    protected _isStatusVisible(): boolean;
    preferredLayoutSize($container: JQuery, options?: HtmlCompPrefSizeOptions): Dimension;
    /**
     * @returns the input element used to position the icon. May be overridden if another element than $field should be used.
     */
    protected _$elementForIconLayout(): JQuery;
    protected _layoutIcon(formField: FormField, fieldBounds: Rectangle, right: number, top: number): void;
    protected _layoutMaskedIndicator(formField: FormField, fieldBounds: Rectangle, right: number): void;
    protected _layoutClearIcon(formField: FormField, fieldBounds: Rectangle, right: number, top: number): void;
    labelWidth(): number;
}
//# sourceMappingURL=FormFieldLayout.d.ts.map