/** @packageDocumentation
 * @module Widget
 */
import "./Tab.scss";
import * as React from "react";
import type { TabState } from "../state/TabState.js";
/** @internal */
export interface WidgetTabProviderProps extends TabPositionContextArgs {
    id: TabState["id"];
    showOnlyTabIcon?: boolean;
}
/** @internal */
export declare function WidgetTabProvider({ id, first, firstInactive, last, showOnlyTabIcon, }: WidgetTabProviderProps): React.JSX.Element;
interface WidgetTabProps {
    badge?: React.ReactNode;
    icon?: React.ReactElement;
}
/** Component that displays a tab in a side panel widget.
 * @internal
 */
export declare function WidgetTab(props: WidgetTabProps): React.JSX.Element;
/** @internal */
export interface UseTabInteractionsArgs {
    onClick?: () => void;
    onDoubleClick?: () => void;
    onDragStart?: () => void;
    clickOnly?: boolean;
}
/** @internal */
export declare function useTabInteractions<T extends HTMLElement>({ onClick, onDoubleClick, onDragStart, clickOnly, }: UseTabInteractionsArgs): (instance: T | null | undefined) => void;
/** @internal */
export interface TabPositionContextArgs {
    first?: boolean;
    last?: boolean;
    firstInactive?: boolean;
}
/** @internal */
export declare const TabPositionContext: React.Context<TabPositionContextArgs>;
/** @internal */
export declare const IconOnlyOnWidgetTabContext: React.Context<boolean>;
/** @internal */
export declare const ShowActiveWidgetLabelContext: React.Context<boolean>;
export {};
//# sourceMappingURL=Tab.d.ts.map