import { SelectFieldOption, SelectFieldPinnedOptions } from '../../components/SelectField/types';
/**
 * Normalized pinned section structure used internally.
 * @property label - Section label (e.g., "Recent", "Favorites")
 * @property options - The pinned options for this section
 * @property loading - Whether this section is still loading its options
 */
export type NormalizedPinnedSection = {
    label: string;
    options: SelectFieldOption[];
    loading?: boolean;
};
type UsePinnedOptionsResult = {
    pinnedSections: NormalizedPinnedSection[];
};
/**
 * Hook that normalizes and loads pinned options from various input formats.
 *
 * Handles:
 * - Labeled pinned options object
 * - Array of labeled pinned options objects
 *
 * Dynamic sections appear immediately with `loading: true` and empty options,
 * then transition to their resolved options once loaded. Results are cached
 * per section per search value so revisiting a previous search term is instant.
 *
 * Per-section configuration:
 * - `searchReactive` (default true): when false, loader is called once and the
 *   result is reused for all search values.
 * - `cacheSize` (default 15): max number of search results cached per section.
 *
 * @param pinned - The pinned options configuration from props
 * @param searchValue - Current search input value
 * @returns Normalized pinned sections with per-section loading state
 */
export declare function usePinnedOptions(pinned: SelectFieldPinnedOptions | undefined, searchValue: string): UsePinnedOptionsResult;
export {};
