/** @packageDocumentation
 * @module Base
 */
import type { Draft } from "immer";
import type { RectangleProps, SizeProps } from "@itwin/core-react";
import type { NineZoneState } from "../NineZoneState";
import type { FloatingWidgetState } from "../WidgetState";
/** Same as XAndY from core-geometry, but reproduced here to avoid a breaking peer dependency change.
 * @internal
 */
export interface XAndY {
    readonly x: number;
    readonly y: number;
}
/** @internal */
export declare const category = "appui-react:layout";
/** Helper that returns a plain object. Prevents from adding an instance that is not `immerable` to the state.
 * @internal
 */
export declare function toRectangleProps(rectangle: RectangleProps | undefined): RectangleProps;
/** @internal */
export declare function setRectangleProps(props: Draft<RectangleProps>, bounds: RectangleProps): void;
/** @internal */
export declare function setPointProps(props: Draft<XAndY>, point: XAndY): void;
/** @internal */
export declare function setSizeProps(props: Draft<SizeProps>, size: SizeProps): void;
type KeysOfType<T, Type> = {
    [K in keyof T]: T[K] extends Type ? K : never;
}[keyof T];
/** @internal */
export declare function initSizeProps<T, K extends KeysOfType<T, SizeProps | undefined>>(obj: T, key: K, size: SizeProps | undefined): void;
/** @internal */
export declare function initRectangleProps<T, K extends KeysOfType<T, RectangleProps | undefined>>(obj: T, key: K, rectangle: T[K]): void;
/** @internal */
export declare function isToolSettingsFloatingWidget(state: NineZoneState, id: FloatingWidgetState["id"]): boolean;
/** @internal */
export declare function updateHomeOfToolSettingsWidget(state: NineZoneState, id: FloatingWidgetState["id"], home: FloatingWidgetState["home"]): NineZoneState;
export {};
//# sourceMappingURL=NineZoneStateHelpers.d.ts.map