/** * Shared combobox selection management functions used by both Elements and React packages. * Only framework-agnostic functions belong here. */ import type { IPktComboboxOption } from '../../shared-types/combobox'; /** * Configuration for the toggleSelection function. */ export interface IToggleSelectionConfig { multiple: boolean; allowUserInput: boolean; maxlength: number | null; } /** * Result of a toggle selection operation. * Describes what happened and what the new state should be. */ export interface IToggleSelectionResult { values: string[]; options: IPktComboboxOption[]; shouldOptionsBeOpen: boolean; shouldResetInput: boolean; userInfoMessage: string; searchValue: string; newUserOption: IPktComboboxOption | null; } /** * Marks an option as selected in the options array. * Returns new arrays (immutable). */ export declare const selectOption: (value: string | null, currentValues: string[], options: IPktComboboxOption[], maxlength: number | null, multiple: boolean) => { values: string[]; options: IPktComboboxOption[]; }; /** * Removes an option from the selection. * Returns new arrays (immutable). */ export declare const deselectOption: (value: string | null, currentValues: string[], options: IPktComboboxOption[]) => { values: string[]; options: IPktComboboxOption[]; }; /** * Selects all options (for multiple mode). * Returns new arrays (immutable). */ export declare const selectAllOptions: (options: IPktComboboxOption[], maxlength: number | null) => { values: string[]; options: IPktComboboxOption[]; userInfoMessage: string; }; /** * Clears all selections. * Returns new arrays (immutable). */ export declare const clearAllSelections: (options: IPktComboboxOption[]) => { values: string[]; options: IPktComboboxOption[]; }; /** * Creates a new user-added option object. */ export declare const createUserOption: (value: string) => IPktComboboxOption; /** * Core toggle selection logic. * * Given a value to toggle and the current state, returns the new state * describing what happened. This is the framework-agnostic version of * the combobox's toggleValue method. */ export declare const toggleSelection: (value: string | null, currentValues: string[], options: IPktComboboxOption[], config: IToggleSelectionConfig) => IToggleSelectionResult;