/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { FormComponentValidity } from '@progress/kendo-vue-common'; import { TagData } from './TagList'; import { MultiSelectChangeEvent, MultiSelectOpenEvent, MultiSelectCloseEvent, MultiSelectFocusEvent, MultiSelectBlurEvent, MultiSelectFilterChangeEvent, MultiSelectPageChangeEvent } from './MultiSelectProps'; import { DropDownStateBase, InternalState, ActiveDescendant } from './../common/settings'; import { PropType } from 'vue'; declare enum FocusedItemType { None = 0, ListItem = 1, CustomItem = 2 } interface ListFocusedState { focusedItem?: any; focusedIndex: number; focusedType: FocusedItemType; } /** * @hidden */ export interface MultiSelectInternalState extends InternalState { data: MultiSelectData; } /** * @hidden */ export interface MultiSelectData extends DropDownStateBase { hasMounted: boolean; selectedItems?: Array; valuesItemsDuringOnChange?: Array | null; currentText?: string; currentFocusedIndex?: number; currentFocused?: boolean; currentOpened?: boolean; currentFocusedTag?: any; currentValue?: Array; activedescendant?: ActiveDescendant; _skipFocusEvent: boolean; } /** * @hidden */ declare const MultiSelect: import('vue').DefineComponent; default: boolean; }; removeTagIcon: PropType; allowCustom: PropType; modelValue: PropType; opened: { type: PropType; default: any; }; disabled: PropType; dir: PropType; tabIndex: { type: PropType; default: number; }; accessKey: PropType; dataItems: PropType; textField: PropType; label: PropType; loading: PropType; name: PropType; value: PropType; defaultValue: PropType; valueField: PropType; valuePrimitive: PropType; dataItemKey: PropType; placeholder: PropType; tags: PropType; required: { type: PropType; default: boolean; }; valid: { type: PropType; default: any; }; validate: { type: PropType; }; validationMessage: { type: PropType; default: any; }; validityStyles: { type: PropType; default: boolean; }; tagRender: PropType; id: PropType; popupSettings: { type: PropType; default: () => { animate: boolean; height: string; anchor: string; }; }; itemRender: PropType; groupHeaderItemRender: PropType; groupStickyHeaderItemRender: PropType; listNoDataRender: PropType; focusedItemIndex: PropType<(data: any, inputText: string, textField?: string) => number>; virtual: { type: PropType; default: any; }; header: PropType; footer: PropType; filterable: PropType; filter: { type: PropType; default: any; }; ariaLabel: { type: PropType; default: any; }; ariaLabelledBy: PropType; ariaDescribedBy: PropType; rounded: { type: PropType<"small" | "medium" | "large" | "full" | "none">; validator: (value: string) => boolean; }; tagsRounded: { type: PropType<"small" | "medium" | "large" | "full" | "none">; validator: (value: string) => boolean; }; fillMode: { type: PropType<"flat" | "link" | "solid" | "outline">; validator: (value: string) => boolean; }; size: { type: PropType<"small" | "medium" | "large">; validator: (value: string) => boolean; }; groupField: { type: PropType; }; adaptive: { type: PropType; default: any; }; adaptiveTitle: { type: PropType; default: any; }; inputAttributes: PropType; }>, { inputRef: import('vue').Ref; kendoAnchorRef: import('vue').Ref; kendoLocalizationService: {}; }, { hasMounted: boolean; currentText: string; currentValue: string; currentFocused: boolean; currentOpened: boolean; currentFocusedIndex: any; currentFocusedTag: any; searchState: { word: string; last: string; }; suggested: string; activedescendant: ActiveDescendant; group: any; isScrolling: boolean; itemHeight: number; windowWidth: number; popupWidth: any; initialAdaptiveRenderingValues: any; }, { spanClassNames(): object; isOpen(): boolean; animationStyles(): object | undefined; classNameAdaptive(): string; adaptiveState(): any; }, { clearFilter(state: MultiSelectInternalState): void; computedValue(): any; findByFieldValue(field: string, result: Array): any[]; primitiveValue(): any; validity(): FormComponentValidity; handleItemSelect(index: number, state: MultiSelectInternalState): void; onTagDelete(itemsToRemove: Array, event: any): void; onNavigate(state: MultiSelectInternalState, keyCode: number): void; itemFocus(index: number, state: MultiSelectInternalState): void; searchBarRef(): void; onChangeHandler(event: any): void; clearButtonClick(event: any): void; onInputKeyDown(event: any): any; onTagsNavigate(event: any, state: MultiSelectInternalState): void; triggerOnChange(items: Array, state: MultiSelectInternalState): void; selectFocusedItem(event: any): void; setItems(srcItems: Array, destItems: Array): void; getFocusedState(): ListFocusedState; customItemSelect(event: any): void; handleWrapperClick(event: MouseEvent): void; onCancel(event: MouseEvent): void; handleItemClick(index: number, event: any): void; handleBlur(event: any): void; handleFocus(event: any): void; onPopupOpened(): void; onPopupClosed(): void; focusElement(element: any): void; applyState(state: MultiSelectInternalState): void; setValidity(): void; focus(): void; calculateMedia(entries: ResizeObserverEntry[]): void; repositionPopup(): void; onScroll(event: any): void; }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { changemodel: (value: any) => true; 'update:modelValue': (value: any) => true; filterchange: (event: MultiSelectFilterChangeEvent) => true; change: (event: MultiSelectChangeEvent) => true; pagechange: (event: MultiSelectPageChangeEvent) => true; focus: (event: MultiSelectFocusEvent) => true; blur: (event: MultiSelectBlurEvent) => true; open: (event: MultiSelectOpenEvent) => true; close: (event: MultiSelectCloseEvent) => true; scroll: (event: Event) => true; }, string, import('vue').PublicProps, Readonly; default: boolean; }; removeTagIcon: PropType; allowCustom: PropType; modelValue: PropType; opened: { type: PropType; default: any; }; disabled: PropType; dir: PropType; tabIndex: { type: PropType; default: number; }; accessKey: PropType; dataItems: PropType; textField: PropType; label: PropType; loading: PropType; name: PropType; value: PropType; defaultValue: PropType; valueField: PropType; valuePrimitive: PropType; dataItemKey: PropType; placeholder: PropType; tags: PropType; required: { type: PropType; default: boolean; }; valid: { type: PropType; default: any; }; validate: { type: PropType; }; validationMessage: { type: PropType; default: any; }; validityStyles: { type: PropType; default: boolean; }; tagRender: PropType; id: PropType; popupSettings: { type: PropType; default: () => { animate: boolean; height: string; anchor: string; }; }; itemRender: PropType; groupHeaderItemRender: PropType; groupStickyHeaderItemRender: PropType; listNoDataRender: PropType; focusedItemIndex: PropType<(data: any, inputText: string, textField?: string) => number>; virtual: { type: PropType; default: any; }; header: PropType; footer: PropType; filterable: PropType; filter: { type: PropType; default: any; }; ariaLabel: { type: PropType; default: any; }; ariaLabelledBy: PropType; ariaDescribedBy: PropType; rounded: { type: PropType<"small" | "medium" | "large" | "full" | "none">; validator: (value: string) => boolean; }; tagsRounded: { type: PropType<"small" | "medium" | "large" | "full" | "none">; validator: (value: string) => boolean; }; fillMode: { type: PropType<"flat" | "link" | "solid" | "outline">; validator: (value: string) => boolean; }; size: { type: PropType<"small" | "medium" | "large">; validator: (value: string) => boolean; }; groupField: { type: PropType; }; adaptive: { type: PropType; default: any; }; adaptiveTitle: { type: PropType; default: any; }; inputAttributes: PropType; }>> & Readonly<{ onScroll?: (event: Event) => any; onBlur?: (event: MultiSelectBlurEvent) => any; onChange?: (event: MultiSelectChangeEvent) => any; onClose?: (event: MultiSelectCloseEvent) => any; onFocus?: (event: MultiSelectFocusEvent) => any; onOpen?: (event: MultiSelectOpenEvent) => any; onChangemodel?: (value: any) => any; "onUpdate:modelValue"?: (value: any) => any; onPagechange?: (event: MultiSelectPageChangeEvent) => any; onFilterchange?: (event: MultiSelectFilterChangeEvent) => any; }>, { filter: string; required: boolean; ariaLabel: string; tabIndex: number; virtual: import('./../common/settings').VirtualizationSettings; adaptive: boolean; opened: boolean; popupSettings: import('./../common/settings').DropDownsPopupSettings; valid: boolean; validationMessage: string; validityStyles: boolean; adaptiveTitle: string; autoClose: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; export { MultiSelect };