import type { MdyReactivity, MdySelectOption, MdySignal } from "@modyra/core"; import type { MdyWidgetController } from "../contract.js"; import type { MdyMultiselectFieldControllerOptions, MdyMultiselectFieldIntent, MdyMultiselectFieldState } from "./multiselect-field-types.js"; export interface MdyMultiselectFieldController extends MdyWidgetController, MdyMultiselectFieldIntent> { /** Options remaining after `state().query` filters them, through the `filterOptionsByQuery` * search shared with select. Once a search intent has narrowed the list, the host renders this * rather than the full `options` array. */ readonly filteredOptions: MdySignal[]>; /** Set the selected values programmatically without producing a command. */ setValue(values: ReadonlyArray): void; /** Update the readonly state. */ setReadonly(readonly: boolean): void; /** * Replace the option list. * * A host whose options arrive later, or change, tells the controller rather than building a new * one: a fresh controller forgets the query and which option the keyboard was on. */ setOptions(options: readonly MdySelectOption[]): void; } export declare function createMultiselectFieldController(options: MdyMultiselectFieldControllerOptions, reactivity?: MdyReactivity): MdyMultiselectFieldController;