/** @packageDocumentation * @module Base */ import { type IconSpec, type SizeProps } from "@itwin/core-react"; import type { PanelSide } from "../widget-panels/Panel"; import type { NineZoneState } from "./NineZoneState"; import { type WidgetState } from "./WidgetState"; import { type XAndY } from "./internal/NineZoneStateHelpers"; import { type PanelWidgetRestoreState } from "./WidgetRestoreState"; /** `WidgetDef` is equivalent structure in `appui-react`. * @internal */ export interface TabState { readonly id: string; readonly label: string; readonly iconSpec?: IconSpec; readonly preferredFloatingWidgetSize?: SizeProps; readonly preferredPanelWidgetSize?: "fit-content"; readonly allowedPanelTargets?: ReadonlyArray; readonly canPopout?: boolean; readonly userSized?: boolean; readonly isFloatingWidgetResizable?: boolean; readonly hideWithUiWhenFloating?: boolean; readonly unloaded?: boolean; } /** @internal */ export interface TabsState { readonly [id: string]: TabState; } /** @internal */ export interface DraggedTabState { readonly tabId: TabState["id"]; readonly position: XAndY; readonly home: PanelWidgetRestoreState; } /** Adds a new `tab`. * @internal */ export declare function addTab(state: NineZoneState, id: TabState["id"], tabArgs?: Partial): 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=TabState.d.ts.map