import { DialogApiInjection, DialogProviderProps } from "../../dialog/src/DialogProvider.js"; import "../../dialog/index.js"; import { LoadingBarApiInjection, LoadingBarProviderProps } from "../../loading-bar/src/LoadingBarProvider.js"; import "../../loading-bar/index.js"; import { MessageApiInjection, MessageProviderProps } from "../../message/src/MessageProvider.js"; import "../../message/index.js"; import { ModalApiInjection, ModalProviderProps } from "../../modal/src/ModalProvider.js"; import "../../modal/index.js"; import { NotificationApiInjection, NotificationProviderProps } from "../../notification/src/NotificationProvider.js"; import "../../notification/index.js"; import { ConfigProviderProps } from "../../config-provider/src/ConfigProvider.js"; import "../../config-provider/index.js"; import { App, Ref } from "vue"; //#region src/discrete/src/interface.d.ts type MaybeRef = Ref | T; interface DiscreteApiOptions { configProviderProps?: MaybeRef; messageProviderProps?: MaybeRef; dialogProviderProps?: MaybeRef; notificationProviderProps?: MaybeRef; loadingBarProviderProps?: MaybeRef; modalProviderProps?: MaybeRef; } type DiscreteApiType = 'message' | 'notification' | 'loadingBar' | 'dialog' | 'modal'; type DiscreteApi = { unmount: () => void; app: App; } & ('message' extends T ? { message: MessageApiInjection; } : Record) & ('notification' extends T ? { notification: NotificationApiInjection; } : Record) & ('dialog' extends T ? { dialog: DialogApiInjection; } : Record) & ('loadingBar' extends T ? { loadingBar: LoadingBarApiInjection; } : Record) & ('modal' extends T ? { modal: ModalApiInjection; } : Record); //#endregion export { DiscreteApi, DiscreteApiOptions, DiscreteApiType, MaybeRef };