/** * Pure ResizablePanels layout math (SURF-001). * All sizes are percentages; a layout always sums to 100 (±0.01). * No DOM, no events — the component layer feeds pointer deltas in. */ export interface PanelConstraint { /** Minimum size in percent (default 0). */ min?: number | undefined; /** Maximum size in percent (default 100). */ max?: number | undefined; /** Panel may collapse to `collapsedSize` (default 0) instead of `min`. */ collapsible?: boolean | undefined; /** Size used when collapsed (default 0). */ collapsedSize?: number | undefined; /** Size restored by expandPanel (default `min`). */ expandedSize?: number | undefined; } interface Normalized { min: number; max: number; collapsible: boolean; collapsedSize: number; expandedSize: number; } export declare function normalize(c: PanelConstraint | undefined): Normalized; /** * Move the boundary after `handleIndex` by `deltaPercent` (positive grows * panels left/above the handle, negative grows panels after it). * Panels push their neighbors when they hit their own bounds; the layout * always keeps its original sum. */ export declare function resizePanels(layout: readonly number[], constraints: readonly PanelConstraint[], handleIndex: number, deltaPercent: number): number[]; /** Collapse `panelIndex` to its collapsedSize, distributing the freed space to neighbors. */ export declare function collapsePanel(layout: readonly number[], constraints: readonly PanelConstraint[], panelIndex: number): number[]; /** Restore `panelIndex` to its expandedSize, taking space from the same neighbor. */ export declare function expandPanel(layout: readonly number[], constraints: readonly PanelConstraint[], panelIndex: number): number[]; /** Convert pixel sizes to a percent layout summing to exactly 100. */ export declare function toPercent(sizesPx: readonly number[], totalPx: number): number[]; export {}; //# sourceMappingURL=resizePanels.d.ts.map