import type { KaleidoscopePresetBook } from '../../kaleidoscope.preset-book.types'; import type { Category, Family, PresetBookMenuProps, PresetView } from './preset-book-menu.types'; /** The grouping usePresetBookMenu returns; named so BYO-layout consumers can type it. */ export interface PresetBookMenuModel { /** Distinct families present in the book, in first-appearance order. */ readonly families: ReadonlyArray; /** The reconciled active family (survives a changed book; falls back to the first). */ readonly activeTab: Family | undefined; /** Set the active family tab. */ readonly setActiveTab: (family: Family) => void; /** * Categories (taxonomy[1]) within the active family, first-appearance order. * Empty when the family is flat (every preset is depth-1). */ readonly categories: ReadonlyArray; /** The reconciled active category, or undefined when the family is flat. */ readonly activeCategory: Category | undefined; /** Set the active category. */ readonly setActiveCategory: (category: Category) => void; /** * Presets to display: the active family narrowed to the active category, or * every preset in the family when it is flat. */ readonly views: ReadonlyArray; } /** * Tabbed, preset-book-driven picker. Controlled selection; emits the chosen id * and the host applies it. * * @example * */ export declare function PresetBookMenu

(props: PresetBookMenuProps

): import("react/jsx-runtime").JSX.Element | null; /** * Group a preset book by family and category, and own the active tab and * category. The grouping is plain; no hand-rolled memo: React Compiler memoizes * it when the library is compiled, and it is cheap to recompute otherwise. The * active tab and category are reconciled every render: each survives as long as * it is still in the book, else it falls back to the first; so swapping * `presets`, or switching to a family that lacks the prior category, can't strand * a dead selection. */ export declare function usePresetBookMenu

(presets: P, labelFor?: (id: keyof P & string) => string): PresetBookMenuModel; export { PresetTile } from '../preset-tile'; export { PresetBookMenuLayout } from './layout'; export type { Category, Family, PresetBookMenuProps, PresetBookMenuSelection, PresetBookMenuStyleProps, PresetItemState, PresetView, RenderTile, } from './preset-book-menu.types'; export { PresetGrid } from './preset-grid'; //# sourceMappingURL=index.d.ts.map