import { DeepReadonly, InjectionKey, Ref } from 'vue' import Overlay from '@/components/ui/Overlay.vue' import DialogBox from '@/components/ui/DialogBox.vue' import MessageToaster from '@/components/ui/MessageToaster.vue' import Router from '@/router' export type ReadonlyInjectionKey = InjectionKey<[Readonly | DeepReadonly, Closure]> export const RouterKey: InjectionKey = Symbol('Router') export const OverlayKey: InjectionKey>> = Symbol('Overlay') export const DialogBoxKey: InjectionKey>> = Symbol('DialogBox') export const MessageToasterKey: InjectionKey>> = Symbol('MessageToaster') export const SongsKey: ReadonlyInjectionKey> | InjectionKey> = Symbol('Songs') export const CurrentSongKey: InjectionKey> = Symbol('CurrentSong') export const SelectedSongsKey: ReadonlyInjectionKey> = Symbol('SelectedSongs') export const SongListConfigKey: ReadonlyInjectionKey> = Symbol('SongListConfig') export const SongListSortFieldKey: ReadonlyInjectionKey> = Symbol('SongListSortField') export const SongListSortOrderKey: ReadonlyInjectionKey> = Symbol('SongListSortOrder') export const SongListFilterKeywordsKey: InjectionKey> = Symbol('SongListFilterKeywords') export const SongListContextKey: InjectionKey> = Symbol('SongListContext') export const ModalContextKey: InjectionKey>> = Symbol('ModalContext')