import { useCollectionState } from '@/presentation/components/Shared/Hooks/UseCollectionState'; import { useApplication } from '@/presentation/components/Shared/Hooks/UseApplication'; import { useEnvironment } from '@/presentation/components/Shared/Hooks/UseEnvironment'; import type { InjectionKey } from 'vue'; export const useCollectionStateKey = defineTransientKey>('useCollectionState'); export const useApplicationKey = defineSingletonKey>('useApplication'); export const useEnvironmentKey = defineSingletonKey>('useEnvironment'); function defineSingletonKey(key: string) { return Symbol(key) as InjectionKey; } function defineTransientKey(key: string) { return Symbol(key) as InjectionKey<() => T>; }