import { ActiveTaskOverlay } from './active-task-overlay.js';
/**
 * Coordinates the transient active-task overlay and the shell chrome that
 * needs to detach during fullscreen custom views.
 */
export class InteractiveTaskSurfaceController {
    ui;
    chatContainer;
    overlay = new ActiveTaskOverlay();
    mainShellContent = [];
    constructor(ui, chatContainer) {
        this.ui = ui;
        this.chatContainer = chatContainer;
    }
    getOverlayContainer() {
        return this.overlay.getContainer();
    }
    clear() {
        this.overlay.clear();
    }
    registerMainShellContent(...children) {
        this.mainShellContent.push(...children);
    }
    attachMainShellContent() {
        for (const child of this.mainShellContent) {
            if (!this.ui.children.includes(child)) {
                this.ui.addChild(child);
            }
        }
    }
    detachMainShellContent() {
        for (const child of this.mainShellContent) {
            if (this.ui.children.includes(child)) {
                this.ui.removeChild(child);
            }
        }
    }
    suspend() {
        return this.overlay.suspend();
    }
    showGroup(group) {
        this.overlay.showGroup(group);
    }
    removeGroup(group) {
        this.overlay.removeGroup(group);
    }
    moveGroupToChat(group) {
        this.overlay.moveGroupToChat(group, this.chatContainer);
    }
}
//# sourceMappingURL=interactive-task-surface-controller.js.map