import { DisplayParent, Form, FormControllerModel, InitModelOf, ObjectWithType, Session, SomeRequired } from '../index';
/**
 * Controller with functionality to register and render views and dialogs.
 *
 * The forms are put into the list 'views' and 'dialogs' contained in 'displayParent'.
 */
export declare class FormController implements FormControllerModel, ObjectWithType {
    model: FormControllerModel;
    initModel: SomeRequired<this['model'], 'displayParent' | 'session'>;
    objectType: string;
    displayParent: DisplayParent;
    session: Session;
    constructor(model: InitModelOf<FormController>);
    /**
     * Adds the given view or dialog to this controller and renders it.
     * position is only used if form is a view. this position determines at which position the tab is placed.
     * if select view is set the view rendered in _renderView is also selected.
     */
    registerAndRender(form: Form, position?: number, selectView?: boolean): void;
    isFormShown(form: Form): boolean;
    protected _renderPopupWindow(form: Form, position?: number): void;
    /**
     * Removes the given view or dialog from this controller and DOM. However, the form's adapter is not destroyed. That only happens once the Form is closed.
     */
    unregisterAndRemove(form: Form): void;
    protected _removePopupWindow(form: Form): void;
    /**
     * Renders all dialogs and views registered with this controller.
     */
    render(): void;
    protected _renderViews(): void;
    protected _renderDialogs(): void;
    /**
     * Removes all dialogs and views registered with this controller.
     */
    remove(): void;
    /**
     * Activates the given view or dialog.
     */
    activateForm(form: Form): void;
    acceptView(view: Form, register?: boolean, position?: number, selectView?: boolean): boolean;
    protected _renderView(view: Form, register: boolean, position?: number, selectView?: boolean): void;
    acceptDialog(dialog: Form): boolean;
    protected _renderDialog(dialog: Form, register: boolean): void;
    protected _findFormToActivateAfterDialogRemove(removedDialog: Form): Form;
    protected _removeView(view: Form, unregister?: boolean, showSiblingView?: boolean): void;
    protected _removeDialog(dialog: Form, unregister?: boolean): void;
    /** @internal */
    _activateView(view: Form): void;
    protected _activateDialog(dialog: Form): void;
    /**
     * Attaches all dialogs to their original DOM parents.
     * In contrast to 'render', this method uses 'JQuery detach mechanism' to retain CSS properties, so that the model must not be interpreted anew.
     *
     * This method has no effect if already attached.
     */
    attachDialogs(): void;
    /**
     * Detaches all dialogs from their DOM parents. Thereby, modality glassPanes are not detached.
     * In contrast to 'remove', this method uses 'JQuery detach mechanism' to retain CSS properties, so that the model must not be interpreted anew.
     *
     * This method has no effect if already detached.
     */
    detachDialogs(): void;
    protected _layoutDialog(dialog: Form): void;
}
//# sourceMappingURL=FormController.d.ts.map