/** @packageDocumentation
 * @module Base
 */
import type { SizeProps } from "../../utils/SizeProps.js";
import type { PanelSide } from "../widget-panels/PanelTypes.js";
import type { FloatingWidgetState, WidgetState } from "./WidgetState.js";
/** @internal */
export interface TabDropTargetState {
    readonly widgetId: WidgetState["id"];
    readonly tabIndex: number;
    readonly type: "tab";
}
/** @internal */
export interface WidgetDropTargetState {
    readonly widgetId: WidgetState["id"];
    readonly type: "widget";
}
/** @internal */
export interface PanelDropTargetState {
    readonly side: PanelSide;
    readonly newWidgetId: WidgetState["id"];
    readonly type: "panel";
}
/** @internal */
export interface SectionDropTargetState {
    readonly side: PanelSide;
    readonly newWidgetId: WidgetState["id"];
    readonly sectionIndex: number;
    readonly type: "section";
}
/** @internal */
export interface FloatingWidgetDropTargetState {
    readonly type: "floatingWidget";
    readonly newFloatingWidgetId: FloatingWidgetState["id"];
    readonly size: SizeProps;
}
/** Drop target of a tab drag action.
 * @internal
 */
export type TabDragDropTargetState = PanelDropTargetState | SectionDropTargetState | WidgetDropTargetState | TabDropTargetState | FloatingWidgetDropTargetState;
/** Default drop target, when nothing is targeted.
 * @internal
 */
export interface WindowDropTargetState {
    readonly type: "window";
}
/** Drop target of a widget drag action.
 * @internal
 */
export type WidgetDragDropTargetState = PanelDropTargetState | SectionDropTargetState | WidgetDropTargetState | TabDropTargetState | WindowDropTargetState;
/** @internal */
export type DropTargetState = TabDragDropTargetState | WidgetDragDropTargetState;
/** @internal */
export declare function isTabDropTargetState(state: DropTargetState): state is TabDropTargetState;
/** @internal */
export declare function isPanelDropTargetState(state: DropTargetState): state is PanelDropTargetState;
/** @internal */
export declare function isSectionDropTargetState(state: DropTargetState): state is SectionDropTargetState;
/** @internal */
export declare function isWidgetDropTargetState(state: DropTargetState): state is WidgetDropTargetState;
/** @internal */
export declare function isWindowDropTargetState(state: WidgetDragDropTargetState): state is WindowDropTargetState;
/** @internal */
export declare function isWidgetDragDropTargetState(state: DropTargetState): state is WidgetDragDropTargetState;
/** @internal */
export declare function isTabDragDropTargetState(state: DropTargetState): state is TabDragDropTargetState;
//# sourceMappingURL=DropTargetState.d.ts.map