From 4de275159d7fa91e542b6807c4c2c9d7647bccab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <2834007710@qq.com> Date: Sat, 7 Jun 2025 00:27:47 +0800 Subject: [PATCH 01/11] =?UTF-8?q?docs:=20=F0=9F=93=9A=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bbc8bc9..3a65b29 100644 --- a/README.md +++ b/README.md @@ -71,13 +71,14 @@ pnpm cz # 规范提交(自动执行lint) ## 🤝 社区支持 | 👨‍👨‍👧‍👦 微信交流群 | 💩 作者微信 | |---------------------------------------|-------------------------------------| -| 微信交流群
扫码加入交流群
获取最新动态与技术支持 | 作者vx
群过期或失效?
扫码添加作者微信 | +| 微信交流群
扫码加入交流群
获取最新动态与技术支持 | 作者vx
群过期或失效?
扫码添加作者微信 | ## 🌟 留下赞赏,助力开源

🙊感谢您的支持!🙊

😍开源是热爱的坚持,您的每一份心意都让我们走得更远~😍

-

💌 扫码赞赏,后续将截图保留,并公示赞赏记录💌
💖感谢每一份温暖助力 💖

-赞赏 +赞赏 +

💖感谢每一份温暖助力💖

+

💌 扫码赞赏,后续将截图保留,并公示赞赏记录 💌

From b8f2bc9ff20ededecb7e8bc12e407cfe80af7e72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <76239030+HeJiaYue520@users.noreply.github.com> Date: Sat, 7 Jun 2025 00:35:58 +0800 Subject: [PATCH 02/11] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a65b29..c0b0290 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ pnpm cz # 规范提交(自动执行lint)

🙊感谢您的支持!🙊

😍开源是热爱的坚持,您的每一份心意都让我们走得更远~😍

-赞赏 +赞赏

💖感谢每一份温暖助力💖

💌 扫码赞赏,后续将截图保留,并公示赞赏记录 💌

From 8a808cfdccbeafd3cb3f458b58f3a60f762e38fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <2834007710@qq.com> Date: Sat, 7 Jun 2025 00:39:51 +0800 Subject: [PATCH 03/11] =?UTF-8?q?docs:=20=F0=9F=93=9A=20=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c0b0290..230aafa 100644 --- a/README.md +++ b/README.md @@ -73,11 +73,11 @@ pnpm cz # 规范提交(自动执行lint) |---------------------------------------|-------------------------------------| | 微信交流群
扫码加入交流群
获取最新动态与技术支持 | 作者vx
群过期或失效?
扫码添加作者微信 | -## 🌟 留下赞赏,助力开源 +## 🌹 赠人玫瑰,手有余香
-

🙊感谢您的支持!🙊

😍开源是热爱的坚持,您的每一份心意都让我们走得更远~😍

赞赏 +

🙊感谢您的支持!🙊

💖感谢每一份温暖助力💖

💌 扫码赞赏,后续将截图保留,并公示赞赏记录 💌

From 5079db4ecd0a28bbe4786d3f3f6287e7eb4cb53f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <2834007710@qq.com> Date: Sat, 7 Jun 2025 00:42:21 +0800 Subject: [PATCH 04/11] =?UTF-8?q?docs:=20=F0=9F=93=9A=20=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 230aafa..e10669d 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ pnpm cz # 规范提交(自动执行lint) ## 🤝 社区支持 | 👨‍👨‍👧‍👦 微信交流群 | 💩 作者微信 | |---------------------------------------|-------------------------------------| -| 微信交流群
扫码加入交流群
获取最新动态与技术支持 | 作者vx
群过期或失效?
扫码添加作者微信 | +| 微信交流群
扫码加入交流群
获取最新动态与技术支持 | 作者vx
群过期或失效?
扫码添加作者微信 | ## 🌹 赠人玫瑰,手有余香
From ae1498c1c8584c7c77544b492a6f7d678e3db9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <2834007710@qq.com> Date: Sat, 7 Jun 2025 00:43:31 +0800 Subject: [PATCH 05/11] =?UTF-8?q?docs:=20=F0=9F=93=9A=20=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e10669d..15d471c 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ pnpm cz # 规范提交(自动执行lint) ## 🌹 赠人玫瑰,手有余香

😍开源是热爱的坚持,您的每一份心意都让我们走得更远~😍

-赞赏 +赞赏

🙊感谢您的支持!🙊

💖感谢每一份温暖助力💖

💌 扫码赞赏,后续将截图保留,并公示赞赏记录 💌

From edd482977b7c2630a096f45989503c221f4182a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <76239030+HeJiaYue520@users.noreply.github.com> Date: Sat, 7 Jun 2025 00:55:10 +0800 Subject: [PATCH 06/11] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 15d471c..eb2bf58 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ **ruoyi-element-ai** 是基于 **Vue3.5** + **Element-Plus-X** + **TypeScript** 的企业级AI应用模板,搭配 **ruoyi-ai** 后端,快速构建仿豆包/通义的全栈AI项目。 ## 💡 核心优势 -- 最新技术栈:Vue3.5/Vite5/Pinia3/TypeScript5.8 -- 流式交互:Hook-Fetch支持Server-Sent Events +- 最新技术栈:Vue3.5+/Vite6/Pinia3/TypeScript5 +- 流式交互:Hook-Fetch支持Server-Sent Events,插件化写法优雅的一批 - 企业级规范:ESLint/Stylelint/husky/commitlint全链路校验 -- 开箱即用:内置动态路由、状态管理、组件库封装 +- 开箱即用:内置动态路由、状态管理、组件库封装、hooks封装
From fd4320f4a86f552eab060b39d6b000810dde5c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <76239030+HeJiaYue520@users.noreply.github.com> Date: Sat, 7 Jun 2025 00:56:51 +0800 Subject: [PATCH 07/11] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 文档更新 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eb2bf58..db4a501 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,8 @@ pnpm cz # 规范提交(自动执行lint)

😍开源是热爱的坚持,您的每一份心意都让我们走得更远~😍

赞赏 -

🙊感谢您的支持!🙊

+

🙊扫码赞赏,感谢您的支持!🙊

💖感谢每一份温暖助力💖

-

💌 扫码赞赏,后续将截图保留,并公示赞赏记录 💌

+

💌 后续将截图保留,并公示赞赏记录 💌

From 9f462bc41e3e790ffc314e9adf70e03cede37f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <76239030+HeJiaYue520@users.noreply.github.com> Date: Sat, 7 Jun 2025 19:16:42 +0800 Subject: [PATCH 08/11] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index db4a501..fab098f 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,8 @@ | 功能模块 | 说明 | 链接 | |------------------|-------------------------------|----------------------------------------------------------------------| | 🚀 前端仓库 | Gitee/GitHub 代码仓库(感谢 star🥰爱你爱你😘) | [Gitee](https://gitee.com/he-jiayue/ruoyi-element-ai)
[GitHub](https://github.com/element-plus-x/ruoyi-element-ai) | -| 🛠️ 后端仓库 | 待补充(支持Java/Node) | 待更新 | -| 📚 前端文档 | 开发指南/组件说明 | [快速了解项目](https://chat-docs.element-plus-x.com) | +| 🛠️ 后端仓库 | Java服务,功能丰富强大 | [Gitee](https://gitee.com/ageerle/ruoyi-ai)
[GitHub](https://github.com/ageerle/ruoyi-ai) | +| 📚 前端文档 | 开发指南/组件说明 | [快速了解项目](https://chat-docs.element-plus-x.com) | | 📡 在线演示 | 实时交互体验 | [立即访问](https://chat.element-plus-x.com) | ## 🧰 核心功能 From ecd17198ed92f05588d4af018325a6e079c77229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <76239030+HeJiaYue520@users.noreply.github.com> Date: Sun, 8 Jun 2025 13:14:09 +0800 Subject: [PATCH 09/11] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档 --- README.md | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fab098f..5b01700 100644 --- a/README.md +++ b/README.md @@ -6,18 +6,27 @@
+
+ +
+ ## 🚀 项目亮点 -**ruoyi-element-ai** 是基于 **Vue3.5** + **Element-Plus-X** + **TypeScript** 的企业级AI应用模板,搭配 **ruoyi-ai** 后端,快速构建仿豆包/通义的全栈AI项目。 +**ruoyi-element-ai** 是基于 **Vue3.5** + **Element-Plus-X** + **hook-fetch** + **TypeScript** + **Eslint9** 开发的企业级AI应用模板,搭配 **ruoyi-ai** 后端,快速构建仿豆包/通义的全栈AI项目。 ## 💡 核心优势 - 最新技术栈:Vue3.5+/Vite6/Pinia3/TypeScript5 - 流式交互:Hook-Fetch支持Server-Sent Events,插件化写法优雅的一批 - 企业级规范:ESLint/Stylelint/husky/commitlint全链路校验 +- 全栈项目:集成 ruoyi-ai 后端服务,快速开发 - 开箱即用:内置动态路由、状态管理、组件库封装、hooks封装 +## 🎯 开发文档 + +帮助你快速熟悉项目 +
- +
## 🔗 关键链接 @@ -26,8 +35,8 @@ |------------------|-------------------------------|----------------------------------------------------------------------| | 🚀 前端仓库 | Gitee/GitHub 代码仓库(感谢 star🥰爱你爱你😘) | [Gitee](https://gitee.com/he-jiayue/ruoyi-element-ai)
[GitHub](https://github.com/element-plus-x/ruoyi-element-ai) | | 🛠️ 后端仓库 | Java服务,功能丰富强大 | [Gitee](https://gitee.com/ageerle/ruoyi-ai)
[GitHub](https://github.com/ageerle/ruoyi-ai) | -| 📚 前端文档 | 开发指南/组件说明 | [快速了解项目](https://chat-docs.element-plus-x.com) | -| 📡 在线演示 | 实时交互体验 | [立即访问](https://chat.element-plus-x.com) | +| 📚 前端文档 | 开发指南/项目说明 | [快速了解项目](https://chat-docs.element-plus-x.com) | +| 📡 在线演示 | 实时交互体验 | [在线预览](https://chat.element-plus-x.com) | ## 🧰 核心功能 @@ -68,6 +77,15 @@ pnpm lint:stylelint # 样式格式化 pnpm cz # 规范提交(自动执行lint) ``` +## 🧸 即将推出 (含 ruoyi-ai 接口联调) +- [x] 会话管理 +- [x] 发送消息 +- [x] 登录注册 +- [ ] md 渲染 +- [ ] 编辑输入框 +- [ ] 文件上传 +- [ ] 其他... + ## 🤝 社区支持 | 👨‍👨‍👧‍👦 微信交流群 | 💩 作者微信 | |---------------------------------------|-------------------------------------| @@ -76,7 +94,7 @@ pnpm cz # 规范提交(自动执行lint) ## 🌹 赠人玫瑰,手有余香

😍开源是热爱的坚持,您的每一份心意都让我们走得更远~😍

-赞赏 +赞赏

🙊扫码赞赏,感谢您的支持!🙊

💖感谢每一份温暖助力💖

💌 后续将截图保留,并公示赞赏记录 💌

From a8ff983504fa5c2ae4fc496d6b42d6c014757180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= <76239030+HeJiaYue520@users.noreply.github.com> Date: Sun, 8 Jun 2025 13:22:42 +0800 Subject: [PATCH 10/11] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新文档 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b01700..de4e174 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ 帮助你快速熟悉项目
- +
## 🔗 关键链接 From 530574759471a7ed60137c35b73cf978b4b2e152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=98=89=E6=82=A6?= Date: Sun, 8 Jun 2025 17:28:34 +0800 Subject: [PATCH 11/11] =?UTF-8?q?chore:=20=F0=9F=94=A8=20=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc-auto-import.json | 2 - src/routers/modules/staticRouter.ts | 6 +- types/auto-imports.d.ts | 137 ++++++++++++---------------- 3 files changed, 63 insertions(+), 82 deletions(-) diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index 313e671..af1083b 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -5,8 +5,6 @@ "ComputedRef": true, "DirectiveBinding": true, "EffectScope": true, - "ElMessage": true, - "ElMessageBox": true, "ExtractDefaultPropTypes": true, "ExtractPropTypes": true, "ExtractPublicPropTypes": true, diff --git a/src/routers/modules/staticRouter.ts b/src/routers/modules/staticRouter.ts index 3820785..73b7b2a 100644 --- a/src/routers/modules/staticRouter.ts +++ b/src/routers/modules/staticRouter.ts @@ -16,9 +16,9 @@ export const layoutRouter: RouteRecordRaw[] = [ // title: '通用聊天页面', isDefaultChat: true, icon: 'HomeFilled', - isHide: '1', - isKeepAlive: '0', // 是否缓存路由数据[0是,1否] - isFull: '1', // 是否缓存全屏[0是,1否] + // isHide: '1', // 是否在菜单中隐藏[0是,1否] 预留 + // isKeepAlive: '0', // 是否缓存路由数据[0是,1否] 预留 + // isFull: '1', // 是否全屏[0是,1否] 预留 // enName: "Master Station", // 英文名称 预留 }, }, diff --git a/types/auto-imports.d.ts b/types/auto-imports.d.ts index 1db43ec..6cd1a87 100644 --- a/types/auto-imports.d.ts +++ b/types/auto-imports.d.ts @@ -6,85 +6,68 @@ // biome-ignore lint: disable export {} declare global { - const EffectScope: (typeof import("vue"))["EffectScope"]; - const ElMessage: (typeof import("element-plus/es"))["ElMessage"]; - const ElMessageBox: (typeof import("element-plus/es"))["ElMessageBox"]; - const computed: (typeof import("vue"))["computed"]; - const createApp: (typeof import("vue"))["createApp"]; - const customRef: (typeof import("vue"))["customRef"]; - const defineAsyncComponent: (typeof import("vue"))["defineAsyncComponent"]; - const defineComponent: (typeof import("vue"))["defineComponent"]; - const effectScope: (typeof import("vue"))["effectScope"]; - const getCurrentInstance: (typeof import("vue"))["getCurrentInstance"]; - const getCurrentScope: (typeof import("vue"))["getCurrentScope"]; - const h: (typeof import("vue"))["h"]; - const inject: (typeof import("vue"))["inject"]; - const isProxy: (typeof import("vue"))["isProxy"]; - const isReactive: (typeof import("vue"))["isReactive"]; - const isReadonly: (typeof import("vue"))["isReadonly"]; - const isRef: (typeof import("vue"))["isRef"]; - const markRaw: (typeof import("vue"))["markRaw"]; - const nextTick: (typeof import("vue"))["nextTick"]; - const onActivated: (typeof import("vue"))["onActivated"]; - const onBeforeMount: (typeof import("vue"))["onBeforeMount"]; - const onBeforeUnmount: (typeof import("vue"))["onBeforeUnmount"]; - const onBeforeUpdate: (typeof import("vue"))["onBeforeUpdate"]; - const onDeactivated: (typeof import("vue"))["onDeactivated"]; - const onErrorCaptured: (typeof import("vue"))["onErrorCaptured"]; - const onMounted: (typeof import("vue"))["onMounted"]; - const onRenderTracked: (typeof import("vue"))["onRenderTracked"]; - const onRenderTriggered: (typeof import("vue"))["onRenderTriggered"]; - const onScopeDispose: (typeof import("vue"))["onScopeDispose"]; - const onServerPrefetch: (typeof import("vue"))["onServerPrefetch"]; - const onUnmounted: (typeof import("vue"))["onUnmounted"]; - const onUpdated: (typeof import("vue"))["onUpdated"]; - const onWatcherCleanup: (typeof import("vue"))["onWatcherCleanup"]; - const provide: (typeof import("vue"))["provide"]; - const reactive: (typeof import("vue"))["reactive"]; - const readonly: (typeof import("vue"))["readonly"]; - const ref: (typeof import("vue"))["ref"]; - const resolveComponent: (typeof import("vue"))["resolveComponent"]; - const shallowReactive: (typeof import("vue"))["shallowReactive"]; - const shallowReadonly: (typeof import("vue"))["shallowReadonly"]; - const shallowRef: (typeof import("vue"))["shallowRef"]; - const toRaw: (typeof import("vue"))["toRaw"]; - const toRef: (typeof import("vue"))["toRef"]; - const toRefs: (typeof import("vue"))["toRefs"]; - const toValue: (typeof import("vue"))["toValue"]; - const triggerRef: (typeof import("vue"))["triggerRef"]; - const unref: (typeof import("vue"))["unref"]; - const useAttrs: (typeof import("vue"))["useAttrs"]; - const useCssModule: (typeof import("vue"))["useCssModule"]; - const useCssVars: (typeof import("vue"))["useCssVars"]; - const useId: (typeof import("vue"))["useId"]; - const useModel: (typeof import("vue"))["useModel"]; - const useSlots: (typeof import("vue"))["useSlots"]; - const useTemplateRef: (typeof import("vue"))["useTemplateRef"]; - const watch: (typeof import("vue"))["watch"]; - const watchEffect: (typeof import("vue"))["watchEffect"]; - const watchPostEffect: (typeof import("vue"))["watchPostEffect"]; - const watchSyncEffect: (typeof import("vue"))["watchSyncEffect"]; + const EffectScope: typeof import('vue')['EffectScope'] + const ElMessage: (typeof import("element-plus/es"))["ElMessage"] + const ElMessageBox: (typeof import("element-plus/es"))["ElMessageBox"] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const effectScope: typeof import('vue')['effectScope'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useId: typeof import('vue')['useId'] + const useModel: typeof import('vue')['useModel'] + const useSlots: typeof import('vue')['useSlots'] + const useTemplateRef: typeof import('vue')['useTemplateRef'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] } // for type re-export declare global { // @ts-ignore - export type { - Component, - Slot, - Slots, - ComponentPublicInstance, - ComputedRef, - DirectiveBinding, - ExtractDefaultPropTypes, - ExtractPropTypes, - ExtractPublicPropTypes, - InjectionKey, - PropType, - Ref, - MaybeRef, - MaybeRefOrGetter, - VNode, - WritableComputedRef, - } from "vue"; - import("vue"); + export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + import('vue') }