import { InjectionKey, MaybeRefOrGetter, Ref } from 'vue'; import { VueTemplateRefElement } from './useResizeObserver.js'; /** * Injection key for providing "more" data to child components of a list to e.g. render a "+3 more" indicator. */ export type MoreListInjectionKey = InjectionKey>; export type UseMoreListOptions = { /** * Vue template ref for the parent element containing the more indicator as well as the list of components. */ parentRef: Ref; /** * Vue template ref for the element containing the list of components. */ listRef: Ref; /** * Vue template ref for the more indicator element that might be shown if not all elements are visible. */ moreIndicatorRef: Ref; /** * From which direction the list items should start to be hidden, when space is limited. * ltr/rtl -> horizontal * ttb/btt -> vertical * @default "rtl" */ direction: MaybeRefOrGetter<"rtl" | "ltr" | "ttb" | "btt">; }; /** * Composable for managing a list of components where e.g. a "+3" more indicator should be shown if not all components * fit into the available width. * * @example * * ```vue * * * * * * ``` */ export declare const useMoreList: (options: UseMoreListOptions) => { /** * IDs of currently completely visible components in the list. * Initially `undefined`, in that case treat all components as visible. */ visibleElements: Ref; /** * IDs of currently fully or partially hidden components in the list. * Initially `undefined`, in that case treat all components as visible. */ hiddenElements: Ref; /** * Map of widths for all components in the list. Key = component ID. * Components in the list must inject this map and add a ref for their width to it. * * @see `useMoreListChild()` */ componentMap: import('vue').Reactive>; }; /** * Composable that must be implemented in all list children when using `useMoreList` to correctly observe the visibility of the elements. * * @example * * ```vue *