import { Combobox as FASTComboBox } from '@microsoft/fast-components'; import type { ComboboxOptions } from '@microsoft/fast-foundation'; import { FilterMode } from './combobox.types'; /** * @tagname %%prefix%%-combobox * * @fires change - Fired when a selection is confirmed in autocomplete-both mode * @fires open-change - Fired when the dropdown opens or closes. detail: `OpenChangeEventDetail` */ export declare class Combobox extends FASTComboBox { #private; private _ourValue; private needManualChangeEventDispatch; get activeDescendant(): string; slottedDatasource: HTMLSlotElement; /** * Enables server-side filtering: typed input refetches from the server with a criteria * instead of filtering the already-loaded options client-side. * * @remarks * Automatically forced to `true` (overriding an explicit `async="false"`) when the * slotted datasource has `infinite-scroll` enabled — see * {@link Combobox.enableAsyncForInfiniteScrollDatasource}. With only a page of the * resource loaded, client-side filtering would silently only search that page. */ async: boolean; debounce: number; debounceChanged(oldValue: any, newValue: number): void; debouncedInputHandler: any; /** Controls whether to perform a case-sensitive search in the list of options */ caseSensitive: boolean; /** Controls whether to suppress opening the dropdown when the input field is clicked */ ignoreInputClick: boolean; /** Controls whether to filter by contains or startsWith */ filterMode: FilterMode; /** * Controls whether the combobox should always scroll to the selected option when the dropdown is opened * @experimental */ scrollToSelectedWhenOpening: boolean; /** * Options for scrolling to the selected option when the dropdown is opened * @experimental */ scrollToSelectedWhenOpeningOptions: boolean | ScrollIntoViewOptions; /** * Controls whether the combobox should scroll to the selected option when the selection changes * @experimental */ scrollWhenSelectionChanges: boolean; /** * Options for scrolling to the selected option when the selection changes * @experimental */ scrollWhenSelectionChangesOptions: boolean | ScrollIntoViewOptions; /** * The scrollable element hosting the dropdown options. Part of the public contract for * slotted datasources (e.g. options-datasource infinite scroll) to observe scrolling. * @public */ get scrollableListbox(): HTMLElement | null; openChanged(): void; get value(): string; set value(next: string); slottedOptionsChanged(prev: Element[] | undefined, next: Element[]): void; /** * When the slotted datasource pages its options (infinite scroll), only a page of the * resource is loaded client-side, so filtering typed input locally is meaningless. * Switch to async mode so input refetches from the server with a criteria instead; * further pages honour that criteria. This overrides an explicit `async="false"` on * the combobox — infinite-scroll datasources cannot support client-side filtering. */ private enableAsyncForInfiniteScrollDatasource; filterOptions(): void; clickHandler(e: MouseEvent): boolean | void; keydownHandler(e: KeyboardEvent): boolean | void; keyupHandler(e: KeyboardEvent): boolean | void; /** * Gets the HTML element for the indicator button * * @protected */ protected get indicator(): Element; /** * Selects an item in the dropdown based on its text value * * @param value - The text value of the item to be selected * @protected */ protected selectItemByValue(value: string): void; inputHandler(e: InputEvent): boolean | void; asyncSetFilter(): void; resetCombobox: () => void; private manuallyDispatchChangeEvent; } export declare const foundationComboboxShadowOptions: ShadowRootInit; export declare const defaultComboboxConfig: { indicator: string; }; /** * The Foundation Combo-box * * @public * @remarks * HTML Element: \ */ export declare const foundationCombobox: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition) => import("@microsoft/fast-foundation").FoundationElementRegistry>; //# sourceMappingURL=combobox.d.ts.map