/** @packageDocumentation
 * @module Frontstage
 */
import "./FrameworkStagePanel.scss";
import * as React from "react";
import { StagePanelLocation } from "@itwin/appui-abstract";
import { NineZoneStagePanelManagerProps, WidgetZoneId, ZonesManagerWidgetsProps } from "@itwin/appui-layout-react";
import { StagePanelChangeHandler, WidgetChangeHandler } from "../frontstage/FrontstageComposer";
import { WidgetTabs } from "../widgets/WidgetStack";
import { ZoneLocation } from "../zones/Zone";
import { StagePanelState } from "./StagePanelDef";
import { WidgetDef } from "../widgets/WidgetDef";
/** Properties of a [[FrameworkStagePanel]] component
 * @internal
 */
export interface FrameworkStagePanelProps {
    allowedZones?: ZoneLocation[];
    changeHandler: StagePanelChangeHandler;
    draggedWidgetId: WidgetZoneId | undefined;
    getWidgetContentRef: (id: WidgetZoneId) => React.Ref<HTMLDivElement>;
    header?: React.ReactNode;
    initialSize?: number;
    isInFooterMode: boolean;
    isTargeted: boolean;
    maxSize?: number;
    minSize?: number;
    location: StagePanelLocation;
    panel: NineZoneStagePanelManagerProps;
    panelState: StagePanelState;
    renderPane: (widgetDefId: WidgetDef["id"]) => React.ReactNode;
    resizable: boolean;
    widgetChangeHandler: WidgetChangeHandler;
    stagePanelWidgets: ReadonlyArray<WidgetDef["id"]>;
    widgets: ZonesManagerWidgetsProps;
    widgetTabs: WidgetTabs;
}
/** Stage Panel React component.
 * @internal
 */
export declare class FrameworkStagePanel extends React.PureComponent<FrameworkStagePanelProps> {
    private _measurer;
    componentDidMount(): void;
    componentDidUpdate(): void;
    render(): React.ReactNode;
    private setMinMaxSize;
    private _handleResize;
    private _handleTargetChanged;
    private _handleToggleCollapse;
    private _handlePaneTargetChanged;
    private initializeSize;
}
/** @internal */
export interface SplitterPaneTargetProps {
    onTargetChanged: (paneIndex: number | undefined) => void;
    paneIndex: number;
}
/** @internal */
export declare class SplitterPaneTarget extends React.PureComponent<SplitterPaneTargetProps> {
    render(): JSX.Element;
    private _handleTargetChanged;
}
//# sourceMappingURL=FrameworkStagePanel.d.ts.map