/** @packageDocumentation
 * @module Base
 */
import type { Draft } from "immer";
import type { NineZoneState } from "../NineZoneState.js";
import type { TabState } from "../TabState.js";
import type { SavedTabState } from "../SavedTabState.js";
import type { WidgetState } from "../WidgetState.js";
/** @internal */
export declare function createTabState(id: TabState["id"], args?: Partial<TabState>): TabState;
/** @internal */
export declare function updateTabState(state: NineZoneState, id: TabState["id"], update: (draft: Draft<TabState>) => void): NineZoneState;
/** @internal */
export declare function updateSavedTabState(state: NineZoneState, id: TabState["id"], update: (draft: Draft<SavedTabState>) => void): NineZoneState;
/** Adds a new `tab`.
 * @internal
 */
export declare function addTab(state: NineZoneState, id: TabState["id"], tabArgs?: Partial<TabState>): NineZoneState;
/** Adds an existing `tab` to a specified `widget`.
 * @internal
 */
export declare function addTabToWidget(state: NineZoneState, tabId: TabState["id"], widgetId: WidgetState["id"]): NineZoneState;
/** Inserts an existing `tab` to a specified `widget` at a specified `tabIndex`.
 * @internal
 */
export declare function insertTabToWidget(state: NineZoneState, tabId: TabState["id"], widgetId: WidgetState["id"], tabIndex: number): NineZoneState;
/** Removes tab from the UI, but keeps the tab state.
 * @internal
 */
export declare function removeTabFromWidget(state: NineZoneState, tabId: TabState["id"]): NineZoneState;
/** Removes tab from the UI and deletes the tab state.
 * @internal
 */
export declare function removeTab(state: NineZoneState, tabId: TabState["id"]): NineZoneState;
/** Adds removed tab to the UI.
 * @internal
 */
export declare function addRemovedTab(state: NineZoneState, tabId: TabState["id"]): NineZoneState;
//# sourceMappingURL=TabStateHelpers.d.ts.map