/** @packageDocumentation
 * @module Base
 */
import type { Draft } from "immer";
import type { HorizontalPanelSide, PanelSide, VerticalPanelSide } from "../../widget-panels/PanelTypes.js";
import type { NineZoneState } from "../NineZoneState.js";
import type { HorizontalPanelState, PanelsState, VerticalPanelState } from "../PanelState.js";
import type { WidgetState } from "../WidgetState.js";
import type { StagePanelSizeSpec } from "../../../stagepanels/StagePanelConfig.js";
import type { SizeProps } from "../../../utils/SizeProps.js";
/** @internal */
export declare function createVerticalPanelState(side: VerticalPanelSide, args?: Partial<VerticalPanelState>): VerticalPanelState;
/** @internal */
export declare function createHorizontalPanelState(side: HorizontalPanelSide, args?: Partial<HorizontalPanelState>): HorizontalPanelState;
/** @internal */
export declare function createPanelsState(args?: Partial<PanelsState>): PanelsState;
/** @internal */
export declare function updatePanelState<K extends keyof PanelsState>(state: NineZoneState, side: K, update: (draft: Draft<PanelsState>[K]) => void): NineZoneState;
/** @internal */
export declare function getPanelPixelSizeFromSpec(side: PanelSide, appSize: SizeProps, panelSize: StagePanelSizeSpec): number;
/** @internal */
export declare function getPanelSize(preferredSizeSpec: StagePanelSizeSpec | undefined, side: PanelSide, minSizeSpec: StagePanelSizeSpec, maxSizeSpec: StagePanelSizeSpec, appSize: SizeProps): number | undefined;
/** @internal */
export declare function addPanelWidget(state: NineZoneState, side: PanelSide, id: WidgetState["id"], tabs: WidgetState["tabs"], widgetArgs?: Partial<WidgetState>): NineZoneState;
/** @internal */
export declare function insertPanelWidget(state: NineZoneState, side: PanelSide, id: WidgetState["id"], tabs: WidgetState["tabs"], sectionIndex: number, widgetArgs?: Partial<WidgetState>): NineZoneState;
//# sourceMappingURL=PanelStateHelpers.d.ts.map