import { ViewTemplate } from '@microsoft/fast-element'; import { FoundationElement } from '@microsoft/fast-foundation'; import { MultiselectDatasource } from '../options-datasource'; import { MultiselectOption, Position } from './multiselect-consts'; export declare const foundationMultiselectShadowOptions: ShadowRootInit; export declare const defaultMultiselectConfig: {}; /** * Options for clearing the multiselect component */ export interface ClearOptions { /** Whether to clear selected values (default: true) */ clearSelectedValues?: boolean; /** Whether to clear filter text (default: true) */ clearFilterText?: boolean; } /** * @tagname %%prefix%%-multiselect * * @fires selectionChange - Fired when the selected options change * @fires clear - Fired when the selection or filter is cleared */ export declare class Multiselect extends FoundationElement { name: string; autoPosition: boolean; all: boolean; allSelected: boolean; search: boolean; disabled: boolean; creatable: boolean; async: boolean; debounce: number; resizable: boolean; tabindex: number; /** Tells if the filter uses a contains; if FALSE, will filter using a starts-with check */ filterByContains: boolean; debounceChanged(oldValue: any, newValue: number): void; debouncedInputHandler: any; defaultSlottedNodes: Node[]; slottedDatasource: MultiselectDatasource[]; valueFormatter: any; loading: boolean; filterSearchValue: string; private clickOutside; open: boolean; openChanged(previous: boolean, open: boolean): void; options: MultiselectOption[]; selectedOptions: MultiselectOption[]; filteredAvailableOptions: MultiselectOption[]; scrollContainer: HTMLElement; /** * Controls the positioning of the multiselect dropdown. Accepts the following values: * - Position.ABOVE: Forces the dropdown to always open above the input field. * - Position.BELOW: Forces the dropdown to always open below the input field. */ position: Position; onAllSelectedCallback: (allSelected: boolean) => void; itemRenderer: (option: MultiselectOption, parent: Multiselect, prefix: string) => ViewTemplate; private initialisedOptions; arrowIcon: SVGElement; multiselectDropdown: HTMLElement; filterSearchInput: HTMLInputElement; private isResizing; private startX; private startY; private startWidth; private startHeight; connectedCallback(): void; disconnectedCallback(): void; defaultItemRenderer(option: MultiselectOption, parent: Multiselect): ViewTemplate; toggle(): void; optionsChanged(): void; selectedOptionsChanged(): void; /** * Sets the dropdown position based on the current configuration. * @remarks * If `autoPosition` is `true`, this method calculates the available space above and below the input field in the viewport and positions the dropdown accordingly. * This ensures the dropdown is always visible to the user. If `autoPosition` is `false`, the dropdown position is locked to either 'above' or 'below', as specified by the `position` attribute. * This method is intended for internal use by the component and is marked as private. * @private */ private setDropdownPosition; optionValueGetter(option: MultiselectOption): string; optionLabelGetter(option: MultiselectOption): string; getItemLabel(option: MultiselectOption): any; isOptionDisabled(option: MultiselectOption): boolean; get getDisplayValue(): string; get getPlaceholder(): string; get isAllOptionsDisabled(): boolean; get showCreatable(): boolean; isOptionSelected(normalizedOption: MultiselectOption): boolean; selectCheckboxOne(normalizedOption: MultiselectOption): void; checkboxKeyDown(normalizedOption: MultiselectOption, event: KeyboardEvent): boolean; getEnabledOptionsCount(): number; selectCheckboxAll(): void; inputHandler(): void; findExactMatchOptions(): MultiselectOption[]; setFilter(): void; addOption(): void; asyncSetFilter(): void; changeHandler(event: Event): void; private handleClickOutside; keydownHandler(e: Event & KeyboardEvent): boolean | void; optionsHeaderSlottedNodes: Node[]; /** * Handles the start of resizing */ handleResizeStart: (e: MouseEvent) => void; /** * Handles the resize movement */ handleResizeMove: (e: MouseEvent) => void; /** * Handles the end of resizing */ handleResizeEnd: () => void; /** * Clears the selected values and/or filter text * @param options - Options for clearing the multiselect */ clear(options?: ClearOptions): void; } export declare const foundationMultiselect: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{ baseName: string; template: ViewTemplate; styles: import("@microsoft/fast-element").ElementStyles; shadowOptions: ShadowRootInit; }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{ baseName: string; template: ViewTemplate; styles: import("@microsoft/fast-element").ElementStyles; shadowOptions: ShadowRootInit; }, typeof Multiselect>; //# sourceMappingURL=multiselect.d.ts.map