import { ComputedRef, Ref, UnwrapRef } from 'vue'; declare function useSingleton(key: string): T; declare function useSingleton(key: string, factory: () => T): T; declare function useSingletonRef(key: string): Ref>; declare function useSingletonRef(key: string, factory: () => T): Ref>; declare function useSingletonComputed(key: string): ComputedRef; declare function useSingletonComputed(key: string, factory: () => T): ComputedRef; type Lazy = { value: T; }; declare function useLazy(factory: () => T): Lazy; declare function useLazy(key: string, factory: () => T): Lazy; declare function useLazyRef(factory: () => T): Lazy>>; declare function useLazyRef(key: string, factory: () => T): Lazy>>; declare function useLazyComputed(factory: () => T): Lazy>; declare function useLazyComputed(key: string, factory: () => T): Lazy>; export { useSingleton, useSingletonComputed, useSingletonRef, useLazy, useLazyComputed, useLazyRef };