import { type Dispatch } from "react";
import { type OptionSelectedIconProps } from "./Option.js";
/**
 * @internal
 * @since 6.0.0
 */
export interface ListboxContext extends OptionSelectedIconProps {
    selectOption(option: unknown): void;
    isOptionSelected(option: unknown): boolean;
}
/**
 * **Client Component**
 *
 * @internal
 * @since 6.0.0
 */
export declare const ListboxProvider: import("react").Provider<ListboxContext | null>;
/**
 * @internal
 * @since 6.0.0
 */
export declare function useListboxContext(): ListboxContext;
/**
 * @since 6.0.0
 * @internal
 */
export type ListboxValue = string | number | null | object;
/**
 * @since 6.3.0
 */
export interface ListboxProviderOptions<Value extends ListboxValue> extends OptionSelectedIconProps {
    value: ListboxValue | readonly NonNullable<ListboxValue>[];
    setValue: Dispatch<NonNullable<Value>>;
}
/**
 * @since 6.3.0
 */
export declare function useListboxProvider<Value extends ListboxValue>(options: ListboxProviderOptions<Value>): ListboxContext;
