/** * Pure tree mutations. Every function returns a NEW tree and never mutates its * input (clone-on-write). All structural invariants (#1) are funnelled through * `normalizeRoot`, which collapses empty tabgroups + single-child splits, * cascading upward, while keeping the root a LayoutNode. */ import type { LayoutTree, Orientation, SizeConstraint } from './types.js'; export declare function setSizes(t: LayoutTree, splitId: string, sizes: readonly number[]): LayoutTree; /** * Set (or clear) the fixed-px constraint on child `childIndex` of split * `splitId`. Pure (clone-on-write). Lazily materializes an all-null constraints * array aligned with `children` when absent, then writes the slot. Clearing * (`constraint === null`) keeps the array even if all entries become null. */ export declare function setConstraint(t: LayoutTree, splitId: string, childIndex: number, constraint: SizeConstraint | null): LayoutTree; export declare function setActive(t: LayoutTree, groupId: string, panelId: string): LayoutTree; export declare function closePanel(t: LayoutTree, panelId: string): LayoutTree; export declare function extractPanel(t: LayoutTree, panelId: string): { tree: LayoutTree; extracted: string; }; export declare function insertPanel(t: LayoutTree, panelId: string, dest: { groupId: string; index?: number; }): LayoutTree; export declare function movePanel(t: LayoutTree, panelId: string, dest: { groupId: string; index?: number; }): LayoutTree; export declare function splitPanel(t: LayoutTree, atPanelId: string, dir: Orientation, newPanelId: string, side: 'before' | 'after'): LayoutTree; //# sourceMappingURL=mutations.d.ts.map