/// <reference types="jquery" />
import { ContextMenuPopup, EventHandler, FieldStatusEventMap, FieldStatusModel, FormFieldStatusPosition, HierarchyChangeEvent, Menu, PropertyChangeEvent, Status, StatusOrModel, Tooltip, Widget } from '../../index';
export declare class FieldStatus extends Widget implements FieldStatusModel {
    model: FieldStatusModel;
    eventMap: FieldStatusEventMap;
    self: FieldStatus;
    autoRemove: boolean;
    status: Status;
    position: FormFieldStatusPosition;
    menus: Menu[];
    tooltip: Tooltip;
    contextMenu: ContextMenuPopup;
    updating: boolean;
    protected _parents: Widget[];
    protected _parentPropertyChangeListener: EventHandler<PropertyChangeEvent<any, Widget>>;
    protected _parentHierarchyChangeListener: EventHandler<HierarchyChangeEvent>;
    constructor();
    protected _render(): void;
    protected _remove(): void;
    protected _renderProperties(): void;
    update(status: StatusOrModel, menus: Menu | Menu[], autoRemove: boolean, showStatus?: boolean): void;
    clearStatus(): void;
    setStatus(status: StatusOrModel): void;
    protected _setStatus(status: StatusOrModel): void;
    protected _renderStatus(): void;
    setPosition(position: FormFieldStatusPosition): void;
    protected _renderPosition(): void;
    protected _renderVisible(): void;
    setMenus(menus: Menu | Menu[]): void;
    protected _renderMenus(): void;
    setAutoRemove(autoRemove: boolean): void;
    protected _renderAutoRemove(): void;
    hideTooltip(): void;
    protected _updatePopup(showStatus?: boolean): void;
    protected _requiresTooltip(): boolean;
    showTooltip(): void;
    hideContextMenu(): void;
    showContextMenu(): void;
    hidePopup(): void;
    togglePopup(): void;
    toggleTooltip(): void;
    toggleContextMenu(): void;
    protected _onStatusMouseDown(event: JQuery.MouseDownEvent): void;
    protected _updateTooltipVisibility(parent: Widget): void;
    protected _onParentHierarchyChange(event: HierarchyChangeEvent): void;
    protected _onParentPropertyChange(event: PropertyChangeEvent<any, Widget>): void;
    protected _removeParentListeners(): void;
    /**
     * Adds a property change listener to every parent of the field status. We keep a list of all parents because
     * we need to remove the listeners later, also when the parent hierarchy has changed.
     */
    protected _updateParentListeners(): void;
}
//# sourceMappingURL=FieldStatus.d.ts.map