import type { TaskKindDescriptor, TaskKindCategory } from "../types.js";
import type { WorkflowGraphModel } from "../workflow-graph-model.js";
import type { InsertionContext } from "./insertion-context.js";
/**
 * A picker item enriched with context-awareness metadata.
 */
export interface PickerItem {
    readonly descriptor: TaskKindDescriptor;
    readonly disabled: boolean;
    readonly disabledReason?: string;
}
/**
 * A named section in the picker (Suggested, Recent, or a category group).
 */
export interface PickerSection {
    readonly id: string;
    readonly label: string;
    readonly items: readonly PickerItem[];
    /** If true, this section is a special (Suggested/Recent) section, not a category. */
    readonly isSpecial?: boolean;
}
/**
 * The complete picker data model returned by {@link usePickerData}.
 */
export interface PickerData {
    /** Contextual header text (e.g., "Insert between A and B"). */
    readonly header: string;
    /** Ordered sections to render in the picker. */
    readonly sections: readonly PickerSection[];
    /** Flat list of all selectable (non-disabled) items for keyboard navigation. */
    readonly selectableItems: readonly PickerItem[];
    /** Whether the registry is still loading. */
    readonly isLoading: boolean;
}
/**
 * Computes the full picker data model from insertion context, task registry,
 * and graph model.
 *
 * This hook is the bridge between the pure intelligence layer (suggestions,
 * compatibility, recents) and the picker UI component. It produces a stable,
 * memoized data structure that drives rendering.
 *
 * @param context - The insertion context describing where and how the user is inserting.
 * @param categories - Category-grouped task descriptors from `useTaskKindRegistry()`.
 * @param graph - The current workflow graph model (for constraint evaluation).
 * @param isLoading - Whether the task kind registry is still loading.
 * @param searchQuery - Current search query for filtering.
 */
export declare function usePickerData(context: InsertionContext | null, categories: ReadonlyMap<TaskKindCategory, readonly TaskKindDescriptor[]>, graph: WorkflowGraphModel | null, isLoading: boolean, searchQuery: string): PickerData;
//# sourceMappingURL=usePickerData.d.ts.map