import type { TaskKindDescriptor } from "../types";
import type { DesignTabId, InspectorTabDefinition, InspectorMode } from "./types";
/** Arguments for {@link useInspectorTabs}. */
export interface UseInspectorTabsInput {
    /** Task kind string (e.g. "agent_call"). Null when no node is selected. */
    readonly kindString: string | null;
    /** Descriptor for the selected task kind. */
    readonly descriptor: TaskKindDescriptor | undefined;
    /** Inspector operating mode. */
    readonly mode: InspectorMode;
    /** Stable node ID — tab resets when this changes. */
    readonly nodeId: string | null;
}
/** Return value of {@link useInspectorTabs}. */
export interface UseInspectorTabsReturn {
    /** Visible tabs for the current selection. */
    readonly tabs: readonly InspectorTabDefinition[];
    /** Currently active tab ID. */
    readonly activeTab: DesignTabId;
    /** Set the active tab. */
    readonly setActiveTab: (tabId: DesignTabId) => void;
}
/**
 * Behavior hook that computes visible inspector tabs and manages active tab state.
 *
 * Tab visibility is determined by the task kind and its category:
 * - **Configure** — always visible (default tab)
 * - **Data** — visible for all kinds (export/input mapping)
 * - **Runtime** — visible for AI, invocation, and container kinds
 * - **Advanced** — always visible (flow control, raw YAML)
 * - **Docs** — visible when the descriptor has examples or documentation URL
 *
 * Resets to "Configure" when the selected node changes.
 *
 * @since T10 (Inspector Panel Refactor)
 */
export declare function useInspectorTabs({ kindString, descriptor, mode, nodeId, }: UseInspectorTabsInput): UseInspectorTabsReturn;
//# sourceMappingURL=useInspectorTabs.d.ts.map