import { InjectionKey, Ref, ShallowRef } from 'vue'; import { Option } from '../types/option'; import { Props } from '../types/props'; /** * This type allows you to inject the props with the correct generics * * @example * const props = inject>(PROPS_KEY); */ export type PropsInjection, OptionValue = string> = Props; /** * This type allows you to inject the data with the correct generics * * @example * const data = inject>(DATA_KEY); */ export type DataInjection, OptionValue = string> = { vmodel: Ref; availableOptions: Ref; selectedOptions: Ref; menuOpen: Ref; focusedOption: Ref; containerRef: Readonly>; search: Ref; isPointerDownInMenu: Ref; openMenu: () => void; closeMenu: () => void; toggleMenu: () => void; handleControlClick: (event: MouseEvent) => void; handleInputMousedown: () => void; setOption: (option: GenericOption) => void; removeOption: (option: GenericOption) => void; createOption: () => void; setFocusedOption: (index: number) => void; }; export declare const PROPS_KEY: InjectionKey>; export declare const DATA_KEY: InjectionKey>;