import { type CrowdyStudioController, type CrowdyStudioState } from './controller.js'; import type { CrowdyStudioAgentController } from '../crowdy-agent/controller.js'; import { type CrowdyStudioAgentDomShellOptions } from './agent-dom-shell.js'; import { StudioLayoutController } from './layout.js'; /** * Modular DOM shell; editor implementations mount into `editorHost`. * * Layout is user directed: the editor is always visible while the explorer, * project settings, bottom panel, and agent dock are toggled from the * activity rail, resized with accessible splitters, and persisted through * {@link StudioLayoutController}. */ export declare class CrowdyStudioDomShell { private readonly controller; readonly root: HTMLElement; readonly editorHost: HTMLElement; readonly layout: StudioLayoutController; private readonly workspace; private readonly editorColumn; private readonly projectMenu; private readonly projectMenuList; private readonly saveMenu; private readonly saveActions; private readonly saveMessageText; private readonly saveAction; private readonly remoteAction; private readonly testAction; private readonly runMenu; private readonly deployAction; private readonly stopAction; private readonly runtimeStatus; private readonly budgetStatus; private readonly saveStatus; private readonly newForm; private readonly newName; private readonly newKind; private readonly explorer; private readonly settings; private readonly bottom; private readonly tabs; private readonly settingsName; private readonly settingsDescription; private readonly serverModuleName; private readonly clientModuleName; private readonly pairing; private readonly problemsPanel; private readonly buildPanel; private readonly logsPanel; private readonly runsPanel; private readonly invokePanel; private readonly invokeExport; private readonly invokeParams; private readonly invokeResult; private readonly panelButtons; private readonly panels; private readonly railButtons; private readonly splitters; private readonly agentShell; private readonly unsubscribeLayout; private activePanel; private explorerForm; private lastState; private lastPhase; private disposed; constructor(host: HTMLElement, controller: CrowdyStudioController, agentController?: CrowdyStudioAgentController, agentOptions?: CrowdyStudioAgentDomShellOptions); render(state: CrowdyStudioState): void; dispose(): void; private railButton; /** * Narrow widths turn side panes into overlays (styles.ts container * queries), where several open panes would stack invisibly on top of each * other. Enforce the "single pane" rule there: opening one side pane * closes the others that overlay at the current width. */ private collapseOverlappingPanes; private paneSplitter; private applyLayout; private revealPanel; private autoRevealFailures; private createMenu; private createPanel; private activatePanel; /** Poll logs/runs only while their panel is both selected and shown. */ private syncPanelPolling; private renderProjects; private renderSaveState; private renderExplorer; private projectSection; private projectFileRow; private projectFileFormRow; private referenceSection; private inlineForm; private rerenderExplorer; private renderTabs; private renderSettings; private renderProblems; private renderBuild; private renderRuntimeRows; private run; } //# sourceMappingURL=dom-shell.d.ts.map