import type { InjectionKey } from 'vue' export type UnsavedChangesController = { hasChanges: () => boolean getOriginal: () => Record getModified: () => Record isSaving: () => boolean reset: () => void save: () => void | Promise } export type AppSettingsModalContext = { close: () => boolean registerUnsavedChangesController: (controller: UnsavedChangesController | null) => void } export const appSettingsModalContextKey: InjectionKey = Symbol('appSettingsModalContext')