import type React from "react";
import type { ActionConfig, MenuFooter, MenuHeader, MenuItem, MenuOptions, MenuSection, OptionLike } from "../Autocomplete.types";
import type { RenderItem } from "../useAutocomplete";
export declare function flattenMenu<Value extends OptionLike, S extends object, A extends object>(menu: MenuItem<Value, S, A>[]): {
    optionItems: Value[];
    sections: (MenuSection<Value, S, A> | MenuOptions<Value, A>)[];
    persistentsHeaders: MenuHeader<A>[];
    persistentsFooters: MenuFooter<A>[];
};
export declare function buildItemsForGroup<Value extends OptionLike, S extends object, A extends object>(group: MenuSection<Value, S, A> | MenuOptions<Value, A>, optionsFilter?: (opts: Value[]) => Value[]): Array<RenderItem<Value, S, A>>;
export declare function buildRenderableList<Value extends OptionLike, S extends object, A extends object>(sections: Array<MenuSection<Value, S, A> | MenuOptions<Value, A>>, optionsFilter?: (opts: Value[]) => Value[]): RenderItem<Value, S, A>[];
export declare function getNavigableItemAtIndex<Value extends OptionLike, S extends object, A extends object>(activeIndex: number | null, renderable: Array<RenderItem<Value, S, A>>): RenderItem<Value, S, A> | null;
export declare function findNavigableIndexForValue<Value extends OptionLike, S extends object, A extends object>(renderable: Array<RenderItem<Value, S, A>>, equals: (a: Value, b: Value) => boolean, selectedValue: Value): number | null;
export declare function invokeActiveItemOnEnter<Value extends OptionLike, S extends object, A extends object>(event: React.KeyboardEvent, activeIndex: number | null, renderable: Array<RenderItem<Value, S, A>>, onSelect: (option: Value) => void, onAction: (action: ActionConfig) => void): void;
