import { ContextMenuPopup, EventHandler, FieldStatusEventMap, FieldStatusModel, FormFieldStatusPosition, HierarchyChangeEvent, KeyStrokeContext, 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>;
    static SEVERITY_CSS_CLASSES: string;
    constructor();
    protected _createKeyStrokeContext(): KeyStrokeContext;
    protected _initKeyStrokeContext(): void;
    protected _render(): void;
    protected _remove(): void;
    protected _renderProperties(): void;
    protected _renderTabbable(): void;
    protected _updateEnabledComputed(enabledComputed: boolean, enabledComputedForChildren?: boolean): 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;
    protected _updateVisibility(): void;
    protected _updateAriaLabel(): void;
    protected _updateHasStatus(): void;
    /**
     * Sets or removes the status severity css classes on the given `$container`.
     */
    static updateHasStatus($container: JQuery<HTMLElement>, status: Status): void;
    setPosition(position: FormFieldStatusPosition): void;
    protected _renderPosition(): void;
    protected _renderVisible(): void;
    setMenus(menus: Menu | Menu[]): void;
    protected _renderMenus(): void;
    /**
     * Sets or removes the css class `has-menus` on the given `$container` or on `this.$container` if no container is provided.
     */
    updateHasMenus($container?: JQuery): void;
    setAutoRemove(autoRemove: boolean): void;
    protected _renderAutoRemove(): void;
    /**
     * Closes the open tooltip.
     *
     * @param immediately true, to immediately close it without waiting for the remove animation.
     */
    hideTooltip(immediately?: boolean): void;
    protected _updatePopup(showStatus?: boolean): void;
    protected _requiresTooltip(): boolean;
    showTooltip(): void;
    /**
     * Closes the open context menu.
     *
     * @param immediately true, to immediately close it without waiting for the remove animation.
     */
    hideContextMenu(immediately?: boolean): void;
    showContextMenu(): void;
    /**
     * Closes the open popup (tooltip or context menu).
     *
     * @param immediately true, to immediately close it without waiting for the remove animation.
     */
    hidePopup(immediately?: boolean): void;
    togglePopup(): void;
    toggleTooltip(): void;
    toggleContextMenu(): void;
    protected _onStatusMouseDown(event: JQuery.MouseDownEvent): void;
    doAction(): 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