/** @packageDocumentation
 * @module Base
 */
import * as React from "react";
import { Rectangle } from "@itwin/core-react";
import type { CursorType } from "../widget-panels/CursorOverlay";
import type { PanelSide } from "../widget-panels/PanelTypes";
import type { FloatingWidgetResizeHandle } from "../widget/FloatingWidget";
import type { NineZoneAction } from "../state/NineZoneAction";
import type { LayoutStore } from "./LayoutStore";
/** @internal */
export type NineZoneDispatch = (action: NineZoneAction) => void;
/** @internal */
export interface NineZoneProps {
    children?: React.ReactNode;
    dispatch: NineZoneDispatch;
    layout: LayoutStore;
    labels?: NineZoneLabels;
    toolSettingsContent?: React.ReactNode;
    widgetContent?: React.ReactNode;
    tab?: React.ReactNode;
    floatingWidget?: React.ReactNode;
    showWidgetIcon?: boolean;
    autoCollapseUnpinnedPanels?: boolean;
    animateDockedToolSettings?: boolean;
    uiIsVisible?: boolean;
}
/** @internal */
export interface NineZoneLabels {
    dockToolSettingsTitle?: string;
    moreWidgetsTitle?: string;
    moreToolSettingsTitle?: string;
    pinPanelTitle?: string;
    resizeGripTitle?: string;
    sendWidgetHomeTitle?: string;
    toolSettingsHandleTitle?: string;
    unpinPanelTitle?: string;
    popoutActiveTab?: string;
}
/** @internal */
export declare function NineZone(props: NineZoneProps): React.JSX.Element;
/** @internal */
export interface NineZoneProviderProps extends NineZoneProps {
    measure: () => Rectangle;
}
/** @internal */
export declare function NineZoneProvider(props: NineZoneProviderProps): React.JSX.Element;
/** @internal */
export declare const NineZoneDispatchContext: React.Context<NineZoneDispatch>;
/** @internal */
export declare const NineZoneLabelsContext: React.Context<NineZoneLabels | undefined>;
/** @internal */
export declare const CursorTypeContext: React.Context<CursorType | undefined>;
/** @internal */
export declare const WidgetContentNodeContext: React.Context<React.ReactNode>;
/** @internal */
export declare const ShowWidgetIconContext: React.Context<boolean>;
/** @internal */
export declare const AutoCollapseUnpinnedPanelsContext: React.Context<boolean>;
/** @internal */
export declare const AnimateDockedToolSettingsContext: React.Context<boolean>;
/** @internal */
export declare const ToolSettingsNodeContext: React.Context<React.ReactNode>;
/** @internal */
export declare const TabNodeContext: React.Context<React.ReactNode>;
/** @internal */
export declare const FloatingWidgetNodeContext: React.Context<React.ReactNode>;
/** @internal */
export declare const MeasureContext: React.Context<() => Rectangle>;
/** @internal */
export declare const UiIsVisibleContext: React.Context<boolean>;
/** @internal */
export declare function sideToCursorType(side: PanelSide): CursorType;
/** @internal */
export declare function handleToCursorType(handle: FloatingWidgetResizeHandle): CursorType;
/** @internal */
export declare function getUniqueId(): string;
/** @internal */
export declare function useLabel(labelKey: keyof NineZoneLabels): string | undefined;
//# sourceMappingURL=NineZone.d.ts.map