import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
import type { TabItem } from "../../tabs/Tabs";
import type { SelectedThreadItem } from "../../internal/store/selection-store";
export type SessionInspectorTabId = "workspace" | "configure" | "plan" | "changes" | "artifacts" | "usage" | "inspect";
export interface UseSessionInspectorOptions {
    readonly phase: ExecutionPhase | null;
    readonly hasWriteBacks: boolean;
    readonly writeBackCount: number;
    readonly hasArtifacts: boolean;
    readonly artifactCount: number;
    readonly hasUsage: boolean;
    readonly selectedItem: SelectedThreadItem | null;
}
export interface UseSessionInspectorReturn {
    readonly tabs: readonly TabItem[];
    readonly activeTab: SessionInspectorTabId;
    readonly onTabChange: (tabId: string) => void;
}
/**
 * Build the contextual tab list with badges.
 *
 * Tab order follows the user's mental model — context before output:
 * Workspace → Config → Plan → Usage. Changes and Artifacts appear
 * after Plan when data exists; Inspect appears last when a thread item
 * is selected.
 */
export declare function buildVisibleTabs(opts: {
    hasWriteBacks: boolean;
    writeBackCount: number;
    hasArtifacts: boolean;
    artifactCount: number;
    hasUsage: boolean;
    selectedItem: SelectedThreadItem | null;
}): TabItem[];
/**
 * Behavior hook for SessionInspector tab state management.
 *
 * Uses the "adjust state during render" pattern from the workflow
 * `ExecutionInspector`: shadow `prevPhase`/`prevSelected` state,
 * `userPickedTabRef` for sticky manual picks, and `deriveAutoTab`
 * for system suggestions. Keeps the user's tab pick sticky until
 * a meaningful state change resets it.
 */
export declare function useSessionInspector(opts: UseSessionInspectorOptions): UseSessionInspectorReturn;
//# sourceMappingURL=useSessionInspector.d.ts.map