import React from 'react';
import type { PopoverContentProps, PopoverRootProps, PopoverTriggerProps } from '../popover/types';
import type { usePopoverContext as usePopoverContextType } from '../popover/context';
import type { ComboboxProps } from './types';
/**
 * Structural shape of the `Popover` module, satisfied by both the native and
 * web platform forks. Defined explicitly (rather than `typeof import(...)`) so
 * the slightly different render-return types between forks (web `Content` may
 * return `null`) don't make the modules mutually unassignable.
 */
interface PopoverModule {
    Root: (props: PopoverRootProps) => React.ReactElement;
    Trigger: (props: PopoverTriggerProps) => React.ReactElement;
    Content: (props: PopoverContentProps) => React.ReactElement | null;
    usePopoverContext: typeof usePopoverContextType;
}
/**
 * Build the `Combobox` bound to a platform `Popover` module. The platform
 * entry files (`index.ts` / `index.web.ts`) inject the correct one (native
 * bottom sheet vs web anchored panel) — this repo never relies on implicit
 * `.web` resolution. The combobox logic is single-source.
 *
 * `Combobox` is a filterable autocomplete select that delegates its overlay to
 * Bloom's `Popover` and composes `SearchInput` + `Item`. The trigger + panel
 * read the overlay control from `Popover` context (via an inner component) so
 * selecting an option reliably closes the overlay on every platform.
 */
export declare function createCombobox(Popover: PopoverModule): {
    <T = string>({ options, value, onValueChange, placeholder, label, emptyText, filter, query, onQueryChange, disabled, maxListHeight, style, testID, }: ComboboxProps<T>): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export {};
//# sourceMappingURL=Combobox.d.ts.map