import type { IValueModel, ICountableModel, IResettableModel } from '@zajno/common/models/types'; import { FlagModel, type ILabeledFlagModel } from './FlagModel.js'; import { ValidatableModel } from './Validatable.js'; import { Getter } from '@zajno/common/types/getter'; export declare class MultiSelect extends ValidatableModel> implements IValueModel, IResettableModel, ICountableModel { private readonly _items; private readonly _accessor; private readonly _indexes; readonly opened: FlagModel; private readonly _initial; private readonly _flags; private _indexesLocked; constructor(_items: Getter, _accessor: (item: T) => string, ...selected: number[]); get selectedIndexes(): ReadonlyArray; get items(): ReadonlyArray; get flags(): readonly ILabeledFlagModel[]; get values(): ReadonlyArray; get selectedItems(): ReadonlyArray; get selectedValues(): ReadonlyArray; get value(): readonly string[]; set value(v: readonly string[]); isIndexSelected(index: number): boolean; isValueSelected(value: string): boolean; get count(): number; get selectedCount(): number; get isEmpty(): boolean; get isDefault(): boolean; protected get valueToValidate(): readonly T[]; setItemSelected: (item: T, selected: boolean) => void; selectItem: (item: T) => void; deSelectItem: (item: T) => void; selectItems: (items: readonly T[]) => void; setValueSelected: (value: string, selected: boolean) => void; selectValue: (value: string) => void; deSelectValue: (value: string) => void; selectValues: (values: readonly string[]) => void; setIndexSelected: (index: number, selected: boolean) => void; selectIndex: (index: number) => void; deSelectIndex: (index: number) => void; reset: () => void; private setInitialIndexes; private createFlags; } export declare class MultiSelectString extends MultiSelect { constructor(items: ReadonlyArray, ...selected: number[]); }