import { DisplayParent, InitModelOf, ObjectModel, ObjectWithType, Session, SomeRequired, Widget } from '../index';
/**
 * Controller with functionality to register and render display children.
 */
export declare class DisplayChildController implements DisplayChildControllerModel, ObjectWithType {
    model: DisplayChildControllerModel;
    initModel: SomeRequired<this['model'], 'displayParent' | 'session'>;
    objectType: string;
    displayParent: DisplayParent;
    session: Session;
    constructor(model: InitModelOf<DisplayChildController>);
    /**
     * Adds the given display child to this controller and renders it.
     */
    registerAndRender(child: DisplayChild): void;
    /**
     * Removes the given display child from this controller and DOM. However, the display child's adapter is not destroyed. That only happens once the display child is closed.
     */
    unregisterAndRemove(child: DisplayChild): void;
    protected _render(child: DisplayChild, register?: boolean): void;
    protected _remove(child: DisplayChild): void;
    acceptView(view: DisplayChild): boolean;
    protected _register(child: DisplayChild): void;
    protected _unregister(child: DisplayChild): void;
    protected _registerChild(child: DisplayChild, children: DisplayChild[], propertyName: string, position?: number): void;
    protected _unregisterChild(child: DisplayChild, children: DisplayChild[], propertyName: string): void;
}
export interface DisplayChild extends Widget {
    displayParent: DisplayParent;
}
export interface DisplayChildControllerModel extends ObjectModel<DisplayChild> {
    displayParent?: DisplayParent;
    session?: Session;
}
//# sourceMappingURL=DisplayChildController.d.ts.map