import { CloneOptions, CompositeField, DateField, EventHandler, FormField, FormFieldSuppressStatus, HtmlComponent, InitModelOf, LogicalGrid, LogicalGridLayout, LogicalGridLayoutConfig, Menu, ObjectOrChildModel, ObjectOrModel, PropertyChangeEvent, SequenceBoxEventMap, SequenceBoxModel, StatusOrModel, ValueField, Widget } from '../../../index';
export declare class SequenceBox extends CompositeField implements SequenceBoxModel {
    model: SequenceBoxModel;
    eventMap: SequenceBoxEventMap;
    self: SequenceBox;
    layoutConfig: LogicalGridLayoutConfig;
    fields: FormField[];
    htmlBody: HtmlComponent;
    boxErrorStatus: StatusOrModel;
    boxTooltipText: string;
    boxMenus: Menu[];
    boxMenusVisible: boolean;
    protected _lastVisibleField: FormField;
    protected _isOverwritingStatusFromField: boolean;
    protected _isErrorStatusOverwritten: boolean;
    protected _isTooltipTextOverwritten: boolean;
    protected _isMenusOverwritten: boolean;
    protected _fieldPropertyChangeHandler: EventHandler<PropertyChangeEvent<any, FormField>>;
    protected _lastVisibleFieldSuppressStatusHandler: EventHandler<PropertyChangeEvent<FormFieldSuppressStatus>>;
    constructor();
    protected _init(model: InitModelOf<this>): void;
    /**
     * Initialize all DateFields in this SequenceBox with a meaningful autoDate, except fields which already have an autoDate provided by the model.
     */
    protected _initDateFields(): void;
    protected _render(): void;
    protected _renderProperties(): void;
    protected _renderMaskedIndicator(): void;
    protected _createBodyLayout(): LogicalGridLayout;
    protected _remove(): void;
    invalidateLogicalGrid(invalidateLayout?: boolean): void;
    protected _setLogicalGrid(logicalGrid: LogicalGrid | string): void;
    setLayoutConfig(layoutConfig: ObjectOrModel<LogicalGridLayoutConfig>): void;
    protected _setLayoutConfig(layoutConfig: ObjectOrModel<LogicalGridLayoutConfig>): void;
    protected _renderLayoutConfig(): void;
    protected _onFieldPropertyChange(event: PropertyChangeEvent<any, FormField>): void;
    /**
     * Moves the status relevant properties from the last visible field to the SequenceBox. This makes sure that the fields inside the SequenceBox have the same size.
     */
    protected _handleStatus(visibilityChanged?: boolean): void;
    /**
     * Marks the sequence box as "focused" when the given inner field is focused but does not have a visible label.
     * This allows the focus to be indicated on the sequence box label instead.
     */
    protected _updateFocusedFromField(field: FormField): void;
    /**
     * Called when the given inner field gained the focus. Computes whether the sequence box should be marked as "focused" as well.
     * Normally, we want to do this when the inner field does not have a visible label.
     */
    protected _computeSequenceBoxFocused(focusedField: FormField): boolean;
    protected _onLastVisibleFieldSuppressStatusChange(e: PropertyChangeEvent<FormFieldSuppressStatus>): void;
    setErrorStatus(errorStatus: StatusOrModel): void;
    setTooltipText(tooltipText: string): void;
    setMenus(menusOrModels: ObjectOrChildModel<Menu>[]): void;
    protected _updateBoxMenuOwner(newOwner: Widget): void;
    setMenusVisible(menusVisible: boolean): void;
    protected _getLastVisibleField(): FormField;
    protected _onFieldValueChange(event: PropertyChangeEvent<any, ValueField<any>>): void;
    protected _onDateFieldValueChange(event: PropertyChangeEvent<Date, DateField>): void;
    protected _getDateFields(): (DateField & {
        hasModelAutoDateSet?: boolean;
    })[];
    protected _getAutoDateProposal(field: DateField): Date;
    protected _modifyLabel(field: FormField): void;
    setFields(fields: ObjectOrChildModel<FormField>[]): void;
    getFields(): FormField[];
    clone(model: SequenceBoxModel, options?: CloneOptions): this;
}
//# sourceMappingURL=SequenceBox.d.ts.map