import { useCollectionState } from '@/presentation/components/Shared/Hooks/UseCollectionState'; import { useApplication } from '@/presentation/components/Shared/Hooks/UseApplication'; import { useRuntimeEnvironment } from '@/presentation/components/Shared/Hooks/UseRuntimeEnvironment'; import type { useAutoUnsubscribedEvents } from './components/Shared/Hooks/UseAutoUnsubscribedEvents'; import type { InjectionKey } from 'vue'; export const InjectionKeys = { useCollectionState: defineTransientKey>('useCollectionState'), useApplication: defineSingletonKey>('useApplication'), useRuntimeEnvironment: defineSingletonKey>('useRuntimeEnvironment'), useAutoUnsubscribedEvents: defineTransientKey>('useAutoUnsubscribedEvents'), }; function defineSingletonKey(key: string): InjectionKey { return Symbol(key) as InjectionKey; } function defineTransientKey(key: string): InjectionKey<() => T> { return Symbol(key) as InjectionKey<() => T>; }