import { Ref } from 'vue'; interface CollectionContext { collectionRef: Ref; itemMap: Ref>; attrName: string; } export declare const injectCollectionContext: | null | undefined = CollectionContext<{}>>(fallback?: T | undefined) => T extends null ? CollectionContext<{}> | null : CollectionContext<{}>, provideCollectionContext: (contextValue: CollectionContext<{}>) => any; export declare function createCollection(attrName?: string): { getItems: () => ({ ref: HTMLElement; value?: any; } & ItemData)[]; reactiveItems: import('vue').ComputedRef<({ ref: HTMLElement; value?: any; } & ItemData)[]>; itemMapSize: import('vue').ComputedRef; }; export declare const CollectionSlot: import('vue').DefineComponent<{}, () => import('vue').VNode, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly>, {}, {}>; export declare const CollectionItem: import('vue').DefineComponent<{ value: { validator: () => boolean; }; }, () => import('vue').VNode, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly boolean; }; }>>, {}, {}>; export declare function useCollection(fallback?: CollectionContext): { getItems: () => ({ ref: HTMLElement; value?: any; } & ItemData)[]; }; export {};