wevu 6.12.3 → 6.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1009 @@
1
+ import { t as WeappIntrinsicElements } from "./weappIntrinsicElements-BogJZUKk.mjs";
2
+ import { A as ComputedDefinitions, D as MiniProgramPageLifetimes, F as ModelBindingOptions, I as ModelBindingPayload, N as MethodDefinitions, P as ModelBinding, Qt as ShallowRef, T as MiniProgramComponentRawOptions, Zt as Ref, _ as RuntimeApp, c as ShallowUnwrapRef, cn as SetupContextRouter, d as SetupContext, f as SetupContextNativeInstance, fn as ComponentPropsOptions, h as InternalRuntimeState, k as ComponentPublicInstance, p as SetupFunction, v as RuntimeInstance, w as MiniProgramComponentOptions, x as MiniProgramAppOptions, y as WevuPlugin, yn as InferProps } from "./vue-types-D8BVm-8u.mjs";
3
+ //#region src/runtime/types/setData.d.ts
4
+ interface SetDataSnapshotOptions {
5
+ /**
6
+ * 开发态高频 setData 告警。
7
+ *
8
+ * - `undefined`:默认关闭(可通过 `weapp.wevu.preset: 'performance'` 自动开启)
9
+ * - `false`:关闭告警
10
+ * - `true`:启用默认阈值(默认仅开发态生效)
11
+ * - `object`:自定义阈值与开关
12
+ */
13
+ highFrequencyWarning?: boolean | {
14
+ /**
15
+ * 是否启用告警。
16
+ * @default true
17
+ */
18
+ enabled?: boolean;
19
+ /**
20
+ * 是否仅在开发态生效。
21
+ * @default true
22
+ */
23
+ devOnly?: boolean;
24
+ /**
25
+ * 统计窗口(毫秒)。
26
+ * @default 1000
27
+ */
28
+ sampleWindowMs?: number;
29
+ /**
30
+ * 窗口内超过该次数触发告警。
31
+ * @default 30
32
+ */
33
+ maxCalls?: number;
34
+ /**
35
+ * 告警冷却时间(毫秒),避免刷屏。
36
+ * @default 5000
37
+ */
38
+ coolDownMs?: number;
39
+ /**
40
+ * 是否在检测到 `onPageScroll` 回调内调用 setData 时输出专项告警。
41
+ * @default true
42
+ */
43
+ warnOnPageScroll?: boolean;
44
+ /**
45
+ * `onPageScroll` 专项告警冷却时间(毫秒)。
46
+ * @default 2000
47
+ */
48
+ pageScrollCoolDownMs?: number;
49
+ };
50
+ /**
51
+ * setData 策略:
52
+ * - diff:全量快照 + diff(默认,兼容性最好)
53
+ * - patch:按变更路径增量产出 payload(性能更好;在共享引用等场景会自动回退 diff)
54
+ */
55
+ strategy?: 'diff' | 'patch';
56
+ /**
57
+ * 仅下发指定的顶层字段(包含 data/setup 返回值与 computed)。
58
+ * 若为空则默认下发所有字段。
59
+ */
60
+ pick?: string[];
61
+ /**
62
+ * 排除指定的顶层字段(包含 data/setup 返回值与 computed)。
63
+ */
64
+ omit?: string[];
65
+ /**
66
+ * 是否将 computed 的结果参与 setData(默认 true)。
67
+ */
68
+ includeComputed?: boolean;
69
+ /**
70
+ * 页面/组件处于后台态(onHide 之后)时,是否挂起 setData 下发。
71
+ *
72
+ * - true:后台态仅合并最新 payload,待 onShow 后一次性 flush
73
+ * - false:保持默认行为,后台态也继续 setData
74
+ *
75
+ * @default false
76
+ */
77
+ suspendWhenHidden?: boolean;
78
+ /**
79
+ * patch 模式阈值:当本轮变更路径数量超过该值时,自动回退到 diff。
80
+ * 说明:大量路径变更时,全量快照 diff 往往更快/更小。
81
+ */
82
+ maxPatchKeys?: number;
83
+ /**
84
+ * patch 模式阈值:当本轮 payload 估算字节数超过该值时,自动回退到 diff。
85
+ * 说明:该估算基于 `JSON.stringify(payload).length`,仅用于启发式降级。
86
+ */
87
+ maxPayloadBytes?: number;
88
+ /**
89
+ * patch 模式优化:当同一父路径下存在多个子路径变更时,合并为父路径整体下发。
90
+ *
91
+ * 例如:`a.b` 与 `a.c` 同时变更,且 `mergeSiblingThreshold = 2` 时,会下发 `a`。
92
+ *
93
+ * 注意:当子路径包含删除(null)时,为避免删除语义不一致,将不会触发合并。
94
+ */
95
+ mergeSiblingThreshold?: number;
96
+ /**
97
+ * 同级合并的“负优化”防护:若合并后的父路径估算体积大于子路径体积之和 * ratio,则不合并。
98
+ */
99
+ mergeSiblingMaxInflationRatio?: number;
100
+ /**
101
+ * 同级合并的“负优化”防护:若父路径估算体积超过该值,则不合并。
102
+ */
103
+ mergeSiblingMaxParentBytes?: number;
104
+ /**
105
+ * 是否在父值为数组时跳过同级合并(默认 true)。
106
+ */
107
+ mergeSiblingSkipArray?: boolean;
108
+ /**
109
+ * patch 模式优化:computed 变更对比策略。
110
+ *
111
+ * - reference:仅 `Object.is` 比较(最快,可能会多下发)
112
+ * - shallow:仅比较数组/对象第一层(折中)
113
+ * - deep:深比较(可能较慢,适合小对象);会受 `computedCompareMaxDepth/maxKeys` 限制
114
+ */
115
+ computedCompare?: 'reference' | 'shallow' | 'deep';
116
+ /**
117
+ * computed 深比较最大深度(仅在 `computedCompare = "deep"` 时生效)。
118
+ */
119
+ computedCompareMaxDepth?: number;
120
+ /**
121
+ * computed 深比较最多比较 key 数(仅在 `computedCompare = "deep"` 时生效)。
122
+ */
123
+ computedCompareMaxKeys?: number;
124
+ /**
125
+ * 限制 patch 模式的预链接(prelinkReactiveTree)开销:最多向下遍历的深度(root 为 0)。
126
+ */
127
+ prelinkMaxDepth?: number;
128
+ /**
129
+ * 限制 patch 模式的预链接(prelinkReactiveTree)开销:最多索引的节点数。
130
+ */
131
+ prelinkMaxKeys?: number;
132
+ /**
133
+ * setData 调试信息回调(用于观测 patch 命中率/回退原因/payload 大小)。
134
+ */
135
+ debug?: (info: SetDataDebugInfo) => void;
136
+ /**
137
+ * 内建诊断日志开关(默认 off)。
138
+ *
139
+ * - off:关闭内建日志
140
+ * - fallback:仅在回退 diff / 超阈值时输出
141
+ * - always:每次 flush 都输出
142
+ */
143
+ diagnostics?: 'off' | 'fallback' | 'always';
144
+ /**
145
+ * debug 触发时机:
146
+ * - fallback:仅在回退 diff / 超阈值时触发(默认)
147
+ * - always:每次 flush 都触发
148
+ */
149
+ debugWhen?: 'fallback' | 'always';
150
+ /**
151
+ * debug 采样率(0-1),用于降低 debug 频率与开销(默认 1)。
152
+ */
153
+ debugSampleRate?: number;
154
+ /**
155
+ * patch 模式优化:当某个顶层字段下的变更路径数量过多时,直接提升为顶层字段整体替换。
156
+ */
157
+ elevateTopKeyThreshold?: number;
158
+ /**
159
+ * setData 序列化上限:最大递归深度(root 为 0)。超过时将停止深拷贝,保留更浅层结构。
160
+ */
161
+ toPlainMaxDepth?: number;
162
+ /**
163
+ * setData 序列化上限:最多处理的对象 key 数(累计)。超过时将停止深拷贝,保留更浅层结构。
164
+ */
165
+ toPlainMaxKeys?: number;
166
+ }
167
+ interface SetDataDebugInfo {
168
+ mode: 'patch' | 'diff';
169
+ reason: 'patch' | 'diff' | 'needsFullSnapshot' | 'maxPatchKeys' | 'maxPayloadBytes';
170
+ pendingPatchKeys: number;
171
+ payloadKeys: number;
172
+ estimatedBytes?: number;
173
+ bytes?: number;
174
+ mergedSiblingParents?: number;
175
+ computedDirtyKeys?: number;
176
+ }
177
+ //#endregion
178
+ //#region src/runtime/types/options.d.ts
179
+ type DataOption<D extends object> = D | (() => D);
180
+ interface DefineComponentOptions<P extends ComponentPropsOptions = ComponentPropsOptions, D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, S extends Record<string, any> | void = Record<string, any> | void> extends MiniProgramComponentOptions, MiniProgramPageLifetimes {
181
+ /**
182
+ * 页面特性开关(用于按需注入 Page 事件处理函数)。
183
+ *
184
+ * 说明:小程序的部分页面事件/菜单项具有“按需派发/按需展示”特性,
185
+ * 只有定义了对应的 `onXXX` 方法才会触发/展示(如 `onPageScroll`、`onShareTimeline`)。
186
+ * 因此 wevu 需要在注册阶段(Component())就决定是否注入这些 onXXX。
187
+ *
188
+ * - 若你在 options 中显式定义了原生 `onXXX`,wevu 会自动桥接对应 hook(无需 features)。
189
+ * - 若你只想在 `setup()` 里使用 wevu hook(不额外写原生 `onXXX`),则通过 `features` 显式开启注入。
190
+ */
191
+ features?: PageFeatures;
192
+ /**
193
+ * 类 Vue 的 props 定义(会被规范化为小程序 `properties`)
194
+ */
195
+ props?: P;
196
+ watch?: Record<string, any>;
197
+ setup?: SetupFunction<P, D, C, M, S>;
198
+ /**
199
+ * setup 执行时机:
200
+ * - created:与旧行为一致(默认 defer setData 到 attached)
201
+ * - attached:更接近 Vue 3(props 在 attached 时已就绪)
202
+ *
203
+ * @default 'attached'
204
+ */
205
+ setupLifecycle?: 'created' | 'attached';
206
+ /**
207
+ * 组件 data(建议使用函数返回初始值)。
208
+ */
209
+ data?: DataOption<D>;
210
+ /**
211
+ * 组件 computed(会参与快照 diff)。
212
+ */
213
+ computed?: C;
214
+ /**
215
+ * setData 快照控制选项(用于优化性能与 payload)。
216
+ */
217
+ setData?: SetDataSnapshotOptions;
218
+ /**
219
+ * 组件 methods(会绑定到 public instance 上)。
220
+ */
221
+ methods?: M;
222
+ /**
223
+ * 透传/扩展字段:允许携带其他小程序原生 Component 选项或自定义字段。
224
+ * 说明:为保持兼容性保留索引签名,但仍会对已知字段提供智能提示。
225
+ */
226
+ [key: string]: any;
227
+ }
228
+ type AppSetupProps = {};
229
+ interface DefineAppOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions> extends MiniProgramAppOptions {
230
+ watch?: Record<string, any>;
231
+ setup?: (props: AppSetupProps, ctx: SetupContext<D, C, M, AppSetupProps>) => Record<string, any> | void;
232
+ [key: string]: any;
233
+ }
234
+ interface CreateAppOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions> extends MiniProgramAppOptions {
235
+ data?: DataOption<D>;
236
+ computed?: C;
237
+ methods?: M;
238
+ setData?: SetDataSnapshotOptions;
239
+ watch?: Record<string, any>;
240
+ setup?: (props: AppSetupProps, ctx: SetupContext<D, C, M, AppSetupProps>) => Record<string, any> | void;
241
+ [key: string]: any;
242
+ }
243
+ interface PageFeatures {
244
+ /**
245
+ * 启用页面滚动事件(注入 `onPageScroll`)。
246
+ */
247
+ enableOnPageScroll?: boolean;
248
+ /**
249
+ * 启用下拉刷新事件(注入 `onPullDownRefresh`;仍需在页面配置开启 enablePullDownRefresh)。
250
+ */
251
+ enableOnPullDownRefresh?: boolean;
252
+ /**
253
+ * 启用触底事件(注入 `onReachBottom`)。
254
+ */
255
+ enableOnReachBottom?: boolean;
256
+ /**
257
+ * 启用路由动画完成事件(注入 `onRouteDone`)。
258
+ */
259
+ enableOnRouteDone?: boolean;
260
+ /**
261
+ * 启用 onReady 阶段的 routeDone 兜底补发。
262
+ *
263
+ * 默认关闭:保持与微信小程序平台事件更一致的行为。
264
+ * 仅当个别 IDE/基础库未派发 routeDone 且业务确实依赖该时机时再开启。
265
+ */
266
+ enableOnRouteDoneFallback?: boolean;
267
+ /**
268
+ * 启用 Tab 点击事件(注入 `onTabItemTap`)。
269
+ */
270
+ enableOnTabItemTap?: boolean;
271
+ /**
272
+ * 启用窗口尺寸变化事件(注入 `onResize`)。
273
+ */
274
+ enableOnResize?: boolean;
275
+ /**
276
+ * 启用“转发/分享给朋友”(注入 `onShareAppMessage`,使右上角菜单显示“转发”)。
277
+ */
278
+ enableOnShareAppMessage?: boolean;
279
+ /**
280
+ * 启用“分享到朋友圈”(注入 `onShareTimeline`,使右上角菜单显示“分享到朋友圈”)。
281
+ */
282
+ enableOnShareTimeline?: boolean;
283
+ /**
284
+ * 启用“收藏”(注入 `onAddToFavorites`)。
285
+ */
286
+ enableOnAddToFavorites?: boolean;
287
+ /**
288
+ * 启用“退出状态保存”(注入 `onSaveExitState`)。
289
+ */
290
+ enableOnSaveExitState?: boolean;
291
+ }
292
+ //#endregion
293
+ //#region src/runtime/types.d.ts
294
+ interface WevuGlobalComponents {}
295
+ interface WevuGlobalDirectives {}
296
+ interface GlobalComponents extends WevuGlobalComponents {}
297
+ interface GlobalDirectives extends WevuGlobalDirectives {}
298
+ interface TemplateRefs {}
299
+ type NodesRefFields = Parameters<WechatMiniprogram.NodesRef['fields']>[0];
300
+ interface TemplateRefValue {
301
+ selector: string;
302
+ boundingClientRect: (cb?: (value: WechatMiniprogram.BoundingClientRectCallbackResult | null) => void) => Promise<WechatMiniprogram.BoundingClientRectCallbackResult | null>;
303
+ scrollOffset: (cb?: (value: WechatMiniprogram.ScrollOffsetCallbackResult | null) => void) => Promise<WechatMiniprogram.ScrollOffsetCallbackResult | null>;
304
+ fields: (fields: NodesRefFields, cb?: (value: any) => void) => Promise<any | null>;
305
+ node: (cb?: (value: any) => void) => Promise<any | null>;
306
+ }
307
+ //#endregion
308
+ //#region src/runtime/templateRefTypes.d.ts
309
+ type WeappTemplateRefElements = { [K in keyof WeappIntrinsicElements]: TemplateRefValue };
310
+ declare global {
311
+ interface HTMLElementTagNameMap extends WeappTemplateRefElements {}
312
+ }
313
+ //#endregion
314
+ //#region src/vue-augment.d.ts
315
+ declare module '@vue/runtime-core' {
316
+ interface GlobalComponents extends WevuGlobalComponents {}
317
+ interface GlobalDirectives extends WevuGlobalDirectives {}
318
+ }
319
+ //#endregion
320
+ //#region src/runtime/app.d.ts
321
+ declare function createApp<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: CreateAppOptions<D, C, M>): RuntimeApp<D, C, M>;
322
+ //#endregion
323
+ //#region src/runtime/defaults.d.ts
324
+ interface WevuDefaults {
325
+ app?: Partial<CreateAppOptions<any, any, any>>;
326
+ component?: Partial<DefineComponentOptions<any, any, any, any>>;
327
+ }
328
+ declare function setWevuDefaults(next: WevuDefaults): void;
329
+ declare function resetWevuDefaults(): void;
330
+ //#endregion
331
+ //#region src/runtime/register/inline.d.ts
332
+ interface InlineExpressionEntry {
333
+ keys: string[];
334
+ indexKeys?: string[];
335
+ scopeResolvers?: Array<InlineExpressionScopeResolver | ((ctx: any, scope: Record<string, any>, event: any) => any) | undefined>;
336
+ fn: (ctx: any, scope: Record<string, any>, event: any) => any;
337
+ }
338
+ interface InlineExpressionScopeResolver {
339
+ type: 'for-item';
340
+ path: string;
341
+ indexKey: string;
342
+ }
343
+ type InlineExpressionMap = Record<string, InlineExpressionEntry>;
344
+ //#endregion
345
+ //#region src/runtime/define.d.ts
346
+ /**
347
+ * defineComponent 返回的组件定义描述,用于手动注册或高级用法。
348
+ */
349
+ interface ComponentDefinition<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions> {
350
+ /**
351
+ * 内部 runtime app(高级能力使用),不对外暴露正式 API。
352
+ * @internal
353
+ */
354
+ __wevu_runtime: RuntimeApp<D, C, M>;
355
+ /**
356
+ * 内部选项快照(高级能力使用),包含 data/computed/methods 等。
357
+ * @internal
358
+ */
359
+ __wevu_options: {
360
+ data: () => D;
361
+ computed: C;
362
+ methods: M;
363
+ setData: SetDataSnapshotOptions | undefined;
364
+ watch: Record<string, any> | undefined;
365
+ setup: ((props: any, ctx: any) => any) | undefined;
366
+ mpOptions: MiniProgramComponentRawOptions;
367
+ };
368
+ }
369
+ type SetupBindings<S> = Exclude<S, void> extends never ? Record<string, never> : Exclude<S, void>;
370
+ type ResolveProps<P> = P extends ComponentPropsOptions ? InferProps<P> : P;
371
+ interface WevuComponentConstructor<Props, RawBindings, D extends object, C extends ComputedDefinitions, M extends MethodDefinitions> {
372
+ new (): ComponentPublicInstance<D, C, M, Props> & ShallowUnwrapRef<RawBindings>;
373
+ }
374
+ interface SetupContextWithTypeProps<TypeProps> {
375
+ props: TypeProps;
376
+ [key: string]: any;
377
+ }
378
+ type SetupFunctionWithTypeProps<TypeProps> = (props: TypeProps, ctx: SetupContextWithTypeProps<TypeProps>) => Record<string, any> | void;
379
+ interface DefineComponentTypePropsOptions<TypeProps> {
380
+ __typeProps: TypeProps;
381
+ setup?: SetupFunctionWithTypeProps<TypeProps>;
382
+ [key: string]: any;
383
+ }
384
+ interface DefineComponentWithTypeProps<TypeProps> {
385
+ new (): {
386
+ $props: TypeProps;
387
+ } & Record<string, any>;
388
+ }
389
+ /**
390
+ * 按 Vue 3 风格定义一个小程序组件/页面。
391
+ *
392
+ * - 统一注册为 `Component()`
393
+ *
394
+ * @param options 组件定义项
395
+ * @returns 可手动注册的组件定义
396
+ *
397
+ * @example
398
+ * ```ts
399
+ * defineComponent({
400
+ * data: () => ({ count: 0 }),
401
+ * setup() {
402
+ * onMounted(() => console.log('已挂载'))
403
+ * }
404
+ * })
405
+ * ```
406
+ *
407
+ * @example
408
+ * ```ts
409
+ * defineComponent({
410
+ * setup() {
411
+ * onPageScroll(() => {})
412
+ * }
413
+ * })
414
+ * ```
415
+ */
416
+ declare function defineComponent<TypeProps = any>(options: DefineComponentTypePropsOptions<TypeProps>): DefineComponentWithTypeProps<TypeProps>;
417
+ declare function defineComponent<P extends ComponentPropsOptions = ComponentPropsOptions, D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, S extends Record<string, any> | void = Record<string, any> | void>(options: DefineComponentOptions<P, D, C, M, S>): WevuComponentConstructor<ResolveProps<P>, SetupBindings<S>, D, C, M>;
418
+ /**
419
+ * 从 Vue SFC 选项创建 wevu 组件,供 weapp-vite 编译产物直接调用的兼容入口。
420
+ *
421
+ * @param options 组件选项,可能包含小程序特有的 properties
422
+ * @internal
423
+ */
424
+ declare function createWevuComponent<P extends ComponentPropsOptions = ComponentPropsOptions, D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions>(options: DefineComponentOptions<P, D, C, M> & {
425
+ properties?: WechatMiniprogram.Component.PropertyOption;
426
+ }): void;
427
+ /**
428
+ * scoped slot 兼容组件入口(编译产物内部使用)。
429
+ * @internal
430
+ */
431
+ declare function createWevuScopedSlotComponent(overrides?: {
432
+ computed?: ComputedDefinitions;
433
+ inlineMap?: InlineExpressionMap;
434
+ }): void;
435
+ //#endregion
436
+ //#region src/runtime/disposables.d.ts
437
+ type DisposableMethodName = 'dispose' | 'abort' | 'cancel' | 'stop' | 'disconnect' | 'destroy' | 'close';
438
+ type DisposableObject = Partial<Record<DisposableMethodName, () => void>>;
439
+ type DisposableLike = (() => void) | DisposableObject;
440
+ interface DisposableBag {
441
+ /**
442
+ * 注册一个清理项,返回“取消注册”函数(不会立即执行清理)。
443
+ */
444
+ add: (target: DisposableLike | null | undefined) => () => void;
445
+ /**
446
+ * 立即执行并清空当前 bag 中的全部清理项(幂等)。
447
+ */
448
+ dispose: () => void;
449
+ /**
450
+ * 注册 timeout,并在 bag dispose 时自动 clearTimeout。
451
+ */
452
+ setTimeout: (handler: (...args: any[]) => void, timeout?: number, ...args: any[]) => ReturnType<typeof setTimeout>;
453
+ /**
454
+ * 注册 interval,并在 bag dispose 时自动 clearInterval。
455
+ */
456
+ setInterval: (handler: (...args: any[]) => void, timeout?: number, ...args: any[]) => ReturnType<typeof setInterval>;
457
+ }
458
+ /**
459
+ * 在 setup() 中创建一个“清理袋”,统一管理副作用释放。
460
+ *
461
+ * 典型用法:注册定时器、请求任务、事件监听退订函数,
462
+ * 在页面/组件卸载时自动批量清理,减少内存泄漏风险。
463
+ */
464
+ declare function useDisposables(): DisposableBag;
465
+ //#endregion
466
+ //#region src/runtime/hooks/base.d.ts
467
+ declare function getCurrentInstance<T extends InternalRuntimeState = InternalRuntimeState>(): T | undefined;
468
+ /**
469
+ * 设置当前运行时实例(框架内部使用)。
470
+ * @internal
471
+ */
472
+ declare function setCurrentInstance(inst: InternalRuntimeState | undefined): void;
473
+ declare function getCurrentSetupContext<T = any>(): T | undefined;
474
+ /**
475
+ * 设置当前 setup 上下文(框架内部使用)。
476
+ * @internal
477
+ */
478
+ declare function setCurrentSetupContext(ctx: any | undefined): void;
479
+ /**
480
+ * 调用批量 hook(框架内部调度入口)。
481
+ * @internal
482
+ */
483
+ declare function callHookList(target: InternalRuntimeState, name: string, args?: any[]): void;
484
+ /**
485
+ * 调用返回值型 hook(框架内部调度入口)。
486
+ * @internal
487
+ */
488
+ declare function callHookReturn(target: InternalRuntimeState, name: string, args?: any[]): any;
489
+ //#endregion
490
+ //#region src/runtime/hooks/register.d.ts
491
+ declare function onLaunch(handler: (options: WechatMiniprogram.App.LaunchShowOption) => void): void;
492
+ declare function onPageNotFound(handler: (options: WechatMiniprogram.App.PageNotFoundOption) => void): void;
493
+ declare function onUnhandledRejection(handler: WechatMiniprogram.OnUnhandledRejectionCallback): void;
494
+ declare function onThemeChange(handler: WechatMiniprogram.OnThemeChangeCallback): void;
495
+ declare function onMemoryWarning(handler: WechatMiniprogram.OnMemoryWarningCallback): void;
496
+ declare function onShow(handler: () => void): void;
497
+ declare function onShow(handler: (options: WechatMiniprogram.App.LaunchShowOption) => void): void;
498
+ declare function onLoad(handler: WechatMiniprogram.Page.ILifetime['onLoad']): void;
499
+ declare function onHide(handler: () => void): void;
500
+ declare function onUnload(handler: () => void): void;
501
+ declare function onReady(handler: () => void): void;
502
+ declare function onPullDownRefresh(handler: WechatMiniprogram.Page.ILifetime['onPullDownRefresh']): void;
503
+ declare function onReachBottom(handler: WechatMiniprogram.Page.ILifetime['onReachBottom']): void;
504
+ declare function onPageScroll(handler: (opt: WechatMiniprogram.Page.IPageScrollOption) => void): void;
505
+ declare function onRouteDone(handler: WechatMiniprogram.Page.ILifetime['onRouteDone'] | ((opt?: unknown) => void)): void;
506
+ declare function onTabItemTap(handler: (opt: WechatMiniprogram.Page.ITabItemTapOption) => void): void;
507
+ declare function onResize(handler: (opt: WechatMiniprogram.Page.IResizeOption) => void): void;
508
+ declare function onMoved(handler: () => void): void;
509
+ declare function onAttached(handler: () => void): void;
510
+ declare function onDetached(handler: () => void): void;
511
+ declare function onError(handler: (err: any) => void): void;
512
+ declare function onSaveExitState(handler: () => WechatMiniprogram.Page.ISaveExitState): void;
513
+ declare function onShareAppMessage(handler: WechatMiniprogram.Page.ILifetime['onShareAppMessage']): void;
514
+ declare function onShareTimeline(handler: WechatMiniprogram.Page.ILifetime['onShareTimeline']): void;
515
+ declare function onAddToFavorites(handler: WechatMiniprogram.Page.ILifetime['onAddToFavorites']): void;
516
+ //#endregion
517
+ //#region src/runtime/hooks/vue.d.ts
518
+ /**
519
+ * Vue 3 对齐:组件/页面已挂载,映射小程序 onReady
520
+ */
521
+ declare function onMounted(handler: () => void): void;
522
+ /**
523
+ * Vue 3 对齐:组件/页面更新后触发。
524
+ * 小程序没有专用 update 生命周期,这里在每次 setData 完成后调用。
525
+ */
526
+ declare function onUpdated(handler: () => void): void;
527
+ /**
528
+ * Vue 3 对齐:卸载前触发。
529
+ * 小程序无 before-unload 生命周期,setup 时同步执行以保持语义。
530
+ */
531
+ declare function onBeforeUnmount(handler: () => void): void;
532
+ /**
533
+ * Vue 3 对齐:组件/页面卸载;映射到页面 onUnload 或组件 detached
534
+ */
535
+ declare function onUnmounted(handler: () => void): void;
536
+ /**
537
+ * Vue 3 对齐:挂载前;setup 时同步触发以模拟 beforeMount 语义
538
+ */
539
+ declare function onBeforeMount(handler: () => void): void;
540
+ /**
541
+ * Vue 3 对齐:更新前;在每次 setData 前触发
542
+ */
543
+ declare function onBeforeUpdate(handler: () => void): void;
544
+ /**
545
+ * Vue 3 对齐:错误捕获;映射到小程序 onError
546
+ */
547
+ declare function onErrorCaptured(handler: (err: any, instance: any, info: string) => void): void;
548
+ /**
549
+ * Vue 3 对齐:组件激活;映射到小程序 onShow
550
+ */
551
+ declare function onActivated(handler: () => void): void;
552
+ /**
553
+ * Vue 3 对齐:组件失活;映射到小程序 onHide
554
+ */
555
+ declare function onDeactivated(handler: () => void): void;
556
+ /**
557
+ * Vue 3 对齐:服务端渲染前置钩子。
558
+ * 小程序无此场景,保留空实现以保持 API 兼容。
559
+ */
560
+ declare function onServerPrefetch(_handler: () => void): void;
561
+ /**
562
+ * 派发更新阶段钩子(框架内部调度入口)。
563
+ * @internal
564
+ */
565
+ declare function callUpdateHooks(target: InternalRuntimeState, phase: 'before' | 'after'): void;
566
+ //#endregion
567
+ //#region src/runtime/intersectionObserver.d.ts
568
+ type UseIntersectionObserverOptions = WechatMiniprogram.CreateIntersectionObserverOption;
569
+ type UseIntersectionObserverResult = WechatMiniprogram.IntersectionObserver;
570
+ /**
571
+ * 在 setup 中创建 IntersectionObserver,并在卸载时自动断开。
572
+ *
573
+ * - 优先使用 `ctx.instance.createIntersectionObserver(options)`。
574
+ * - 不可用时回退到 `wx.createIntersectionObserver(instance, options)`。
575
+ */
576
+ declare function useIntersectionObserver(options?: UseIntersectionObserverOptions): UseIntersectionObserverResult;
577
+ //#endregion
578
+ //#region src/runtime/layoutBridge.d.ts
579
+ type LayoutBridgeContext = Record<string, any>;
580
+ type LayoutBridgeComponentResolver = (selector: string) => any;
581
+ type LayoutHostMap = Record<string, unknown>;
582
+ interface LayoutHostBinding {
583
+ key: string;
584
+ refName?: string;
585
+ selector: string;
586
+ kind?: 'component';
587
+ }
588
+ interface LayoutHostResolveOptions<T = any> {
589
+ context?: T;
590
+ fallbackContext?: T;
591
+ interval?: number;
592
+ retries?: number;
593
+ }
594
+ /**
595
+ * 为当前页面注册 layout bridge,使页面或子组件可消费 layout 内部能力。
596
+ */
597
+ declare function registerPageLayoutBridge(selectors: string | string[], context?: LayoutBridgeContext): boolean;
598
+ /**
599
+ * 移除当前页面的 layout bridge 注册。
600
+ */
601
+ declare function unregisterPageLayoutBridge(selectors: string | string[], context?: LayoutBridgeContext): boolean;
602
+ /**
603
+ * 解析当前页面已注册的 layout bridge,找不到时回退到传入上下文。
604
+ */
605
+ declare function resolveLayoutBridge<T = any>(selector: string, fallbackContext?: T): T | undefined;
606
+ /**
607
+ * 解析当前页面 layout 内通过指定 key 暴露的宿主实例。
608
+ */
609
+ declare function resolveLayoutHost<T = any, C = any>(key: string, options?: LayoutHostResolveOptions<C>): T | null;
610
+ /**
611
+ * 等待当前页面 layout 宿主实例可用,适合页面初次进入时的异步宿主解析。
612
+ */
613
+ declare function waitForLayoutHost<T = any, C = any>(key: string, options?: LayoutHostResolveOptions<C>): Promise<T | null>;
614
+ /**
615
+ * 在 layout 生命周期内暴露 bridge,使页面或子组件可访问 layout 内部实例。
616
+ */
617
+ declare function useLayoutBridge(selectors: string | string[], options?: {
618
+ resolveComponent?: LayoutBridgeComponentResolver;
619
+ }): void;
620
+ /**
621
+ * 使用编译期注入的宿主绑定信息,直接从当前 layout 运行时实例解析子组件宿主并注册 bridge。
622
+ */
623
+ declare function registerRuntimeLayoutHosts(bindings: LayoutHostBinding[], context?: LayoutBridgeContext): any;
624
+ /**
625
+ * 移除运行时自动注册的 layout 宿主 bridge。
626
+ */
627
+ declare function unregisterRuntimeLayoutHosts(bindings: LayoutHostBinding[], context?: LayoutBridgeContext): boolean;
628
+ /**
629
+ * 使用 key -> 宿主实例的映射批量暴露 layout 内部宿主,适合 toast/dialog 等共享反馈节点。
630
+ */
631
+ declare function useLayoutHosts(hosts: LayoutHostMap): void;
632
+ //#endregion
633
+ //#region src/runtime/noSetData.d.ts
634
+ declare function markNoSetData<T extends object>(value: T): T;
635
+ declare function isNoSetData(value: unknown): boolean;
636
+ //#endregion
637
+ //#region src/runtime/pageLayout.d.ts
638
+ interface WevuPageLayoutMap {}
639
+ type ResolveTypedPageLayoutName = keyof WevuPageLayoutMap extends never ? string : Extract<keyof WevuPageLayoutMap, string>;
640
+ type ResolveTypedPageLayoutProps<Name extends string> = Name extends keyof WevuPageLayoutMap ? WevuPageLayoutMap[Name] : Record<string, any>;
641
+ type PageLayoutNamedState = { [Name in ResolveTypedPageLayoutName]: {
642
+ name: Name;
643
+ props: ResolveTypedPageLayoutProps<Name>;
644
+ } }[ResolveTypedPageLayoutName];
645
+ type PageLayoutState = PageLayoutNamedState | {
646
+ name: false;
647
+ props: Record<string, any>;
648
+ } | {
649
+ name: undefined;
650
+ props: Record<string, any>;
651
+ };
652
+ /**
653
+ * 获取当前页面 layout 状态。
654
+ */
655
+ declare function usePageLayout(): Readonly<PageLayoutState>;
656
+ declare function syncRuntimePageLayoutState(target: Record<string, any>, layout: string | false, props: Record<string, any>): void;
657
+ declare function syncRuntimePageLayoutStateFromRuntime(target: Record<string, any>): void;
658
+ declare function setPageLayout(layout: false): void;
659
+ declare function setPageLayout<Name extends ResolveTypedPageLayoutName>(layout: Name, props?: ResolveTypedPageLayoutProps<Name>): void;
660
+ declare function resolveRuntimePageLayoutName(layout: string | false): string;
661
+ //#endregion
662
+ //#region src/runtime/pageScroll.d.ts
663
+ interface UsePageScrollThrottleOptions {
664
+ /**
665
+ * 节流间隔(毫秒),默认 80ms。
666
+ */
667
+ interval?: number;
668
+ /**
669
+ * 是否在窗口起始边缘立即触发,默认 true。
670
+ */
671
+ leading?: boolean;
672
+ /**
673
+ * 是否在窗口结束边缘补一次回调,默认 true。
674
+ */
675
+ trailing?: boolean;
676
+ /**
677
+ * 持续滚动时的最大等待时间(毫秒)。
678
+ * 当 trailing 为 false 时,可用于兜底触发一次回调。
679
+ */
680
+ maxWait?: number;
681
+ }
682
+ type UsePageScrollThrottleStopHandle = () => void;
683
+ /**
684
+ * 在 setup 中注册节流后的 onPageScroll 监听,并在卸载时自动清理。
685
+ */
686
+ declare function usePageScrollThrottle(handler: (opt: WechatMiniprogram.Page.IPageScrollOption) => void, options?: UsePageScrollThrottleOptions): UsePageScrollThrottleStopHandle;
687
+ //#endregion
688
+ //#region src/runtime/provide.d.ts
689
+ /**
690
+ * 写入全局 provide 存储,供运行时内部与兼容层复用。
691
+ */
692
+ declare function setGlobalProvidedValue<T>(key: any, value: T): void;
693
+ /**
694
+ * 判断当前是否存在可用的注入上下文。
695
+ *
696
+ * wevu 目前的依赖注入上下文来自同步 `setup()` 阶段的当前实例;
697
+ * 若未来补充 app 级 provider,这里可继续扩展判断来源。
698
+ */
699
+ declare function hasInjectionContext(): boolean;
700
+ /**
701
+ * 在组件上下文中向后代注入值(与 Vue 3 行为兼容),若没有当前实例则回落到全局存储。
702
+ *
703
+ * @param key 注入键,可为字符串、Symbol 或对象
704
+ * @param value 提供的值
705
+ *
706
+ * @example
707
+ * ```ts
708
+ * defineComponent({
709
+ * setup() {
710
+ * provide(TOKEN_KEY, { data: 'value' })
711
+ * }
712
+ * })
713
+ * ```
714
+ */
715
+ declare function provide<T>(key: any, value: T): void;
716
+ /**
717
+ * 从祖先组件(或全局存储)读取提供的值。
718
+ *
719
+ * @param key 注入键,需与 provide 使用的键保持一致
720
+ * @param defaultValue 未找到提供者时的默认值
721
+ * @returns 匹配到的值或默认值
722
+ *
723
+ * @example
724
+ * ```ts
725
+ * defineComponent({
726
+ * setup() {
727
+ * const data = inject(TOKEN_KEY)
728
+ * const value = inject('key', 'default')
729
+ * }
730
+ * })
731
+ * ```
732
+ */
733
+ declare function inject<T>(key: any, defaultValue?: T): T;
734
+ /**
735
+ * 全局注入值,适用于历史兼容场景。
736
+ *
737
+ * @deprecated 已弃用,仅用于兼容/过渡。推荐优先使用 `provide()`,
738
+ * 在无实例上下文时 `provide()` 会自动回落到全局存储。
739
+ */
740
+ declare function provideGlobal<T>(key: any, value: T): void;
741
+ /**
742
+ * 从全局存储读取值,适用于历史兼容场景。
743
+ *
744
+ * @deprecated 已弃用,仅用于兼容/过渡。推荐优先使用 `inject()`,
745
+ * 在无实例上下文时 `inject()` 会自动从全局存储读取。
746
+ */
747
+ declare function injectGlobal<T>(key: any, defaultValue?: T): T;
748
+ //#endregion
749
+ //#region src/runtime/register/watch.d.ts
750
+ type WatchHandler = (this: any, value: any, oldValue: any) => void;
751
+ type WatchDescriptor = WatchHandler | string | {
752
+ handler: WatchHandler | string;
753
+ immediate?: boolean;
754
+ deep?: boolean;
755
+ };
756
+ type WatchMap = Record<string, WatchDescriptor>;
757
+ //#endregion
758
+ //#region src/runtime/register/app.d.ts
759
+ /**
760
+ * 注册 App 入口(框架内部使用)。
761
+ * @internal
762
+ */
763
+ declare function registerApp<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(runtimeApp: RuntimeApp<D, C, M>, methods: MethodDefinitions, watch: WatchMap | undefined, setup: DefineAppOptions<D, C, M>['setup'], mpOptions: MiniProgramAppOptions): void;
764
+ //#endregion
765
+ //#region src/runtime/register/component.d.ts
766
+ /**
767
+ * 注册组件入口(框架内部使用)。
768
+ * @internal
769
+ */
770
+ declare function registerComponent<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(runtimeApp: RuntimeApp<D, C, M>, methods: MethodDefinitions, watch: WatchMap | undefined, setup: DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup'], mpOptions: MiniProgramComponentRawOptions): void;
771
+ //#endregion
772
+ //#region src/runtime/register/runtimeInstance.d.ts
773
+ type RuntimeSetupFunction<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup'] | DefineAppOptions<D, C, M>['setup'];
774
+ /**
775
+ * 挂载运行时实例(框架内部注册流程使用)。
776
+ * @internal
777
+ */
778
+ declare function mountRuntimeInstance<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(target: InternalRuntimeState, runtimeApp: RuntimeApp<D, C, M>, watchMap: WatchMap | undefined, setup?: RuntimeSetupFunction<D, C, M>, options?: {
779
+ deferSetData?: boolean;
780
+ }): RuntimeInstance<D, C, M>;
781
+ declare function setRuntimeSetDataVisibility(target: InternalRuntimeState, visible: boolean): void;
782
+ /**
783
+ * 卸载运行时实例(框架内部注册流程使用)。
784
+ * @internal
785
+ */
786
+ declare function teardownRuntimeInstance(target: InternalRuntimeState): void;
787
+ //#endregion
788
+ //#region src/runtime/register/setup.d.ts
789
+ type SetupRunner = {
790
+ bivarianceHack: (props: Record<string, any>, ctx: any) => any;
791
+ }['bivarianceHack'];
792
+ /**
793
+ * 执行 setup 函数并注入运行时上下文(框架内部使用)。
794
+ * @internal
795
+ */
796
+ declare function runSetupFunction(setup: SetupRunner | undefined, props: Record<string, any>, context: any): unknown;
797
+ //#endregion
798
+ //#region src/runtime/template.d.ts
799
+ declare function normalizeStyle(value: any): string;
800
+ declare function normalizeClass(value: any): string;
801
+ //#endregion
802
+ //#region src/runtime/updatePerformance.d.ts
803
+ type UpdatePerformanceListenerResult = Record<string, any>;
804
+ type UpdatePerformanceListener = (result: UpdatePerformanceListenerResult) => void;
805
+ type UseUpdatePerformanceListenerStopHandle = () => void;
806
+ /**
807
+ * 在 setup 中注册更新性能监听,并在卸载时自动清理。
808
+ *
809
+ * - 底层能力:`instance.setUpdatePerformanceListener(listener)`。
810
+ * - 清理策略:卸载时回传 `undefined` 作为监听器,平台不支持时静默降级。
811
+ */
812
+ declare function useUpdatePerformanceListener(listener: UpdatePerformanceListener): UseUpdatePerformanceListenerStopHandle;
813
+ //#endregion
814
+ //#region src/runtime/use.d.ts
815
+ /**
816
+ * 在 `app` 级 `setup()` 中安装插件,提供与 `app.use()` 对齐的 SFC 调用方式。
817
+ */
818
+ declare function use(plugin: WevuPlugin, ...options: any[]): RuntimeApp<any, any, any>;
819
+ //#endregion
820
+ //#region src/runtime/vueCompat/context.d.ts
821
+ declare function useAttrs(): Record<string, any>;
822
+ declare function useSlots(): Record<string, any>;
823
+ declare function useNativeInstance(): SetupContextNativeInstance;
824
+ //#endregion
825
+ //#region src/runtime/vueCompat/model.d.ts
826
+ type ModelModifiers<M extends PropertyKey = string> = Record<M, true | undefined>;
827
+ type ModelRef$1<T, M extends PropertyKey = string, G = T, S = T> = Ref<G, S> & [ModelRef$1<T, M, G, S>, ModelModifiers<M>];
828
+ interface UseModelOptions<T, M extends PropertyKey = string, G = T, S = T> {
829
+ get?: (value: T, modifiers: ModelModifiers<M>) => G;
830
+ set?: (value: S, modifiers: ModelModifiers<M>) => T;
831
+ }
832
+ declare function useModel<T = any, M extends PropertyKey = string>(props: Record<string, any>, name: string): ModelRef$1<T, M, T, T>;
833
+ declare function useModel<T = any, M extends PropertyKey = string, G = T, S = T>(props: Record<string, any>, name: string, options: UseModelOptions<T, M, G, S>): ModelRef$1<T, M, G, S>;
834
+ /**
835
+ * useBindModel 返回绑定到当前运行时实例的 bindModel。
836
+ * 该方法必须在 setup() 的同步阶段调用。
837
+ */
838
+ type BindModelWithHelper<DefaultEvent extends string = 'input', DefaultValueProp extends string = 'value'> = (<T = any>(path: string, options?: ModelBindingOptions<T>) => ModelBinding<T>) & {
839
+ model: <T = any, Event extends string = DefaultEvent, ValueProp extends string = DefaultValueProp, Formatted = T>(path: string, options?: ModelBindingOptions<T, Event, ValueProp, Formatted>) => ModelBindingPayload<T, Event, ValueProp, Formatted>;
840
+ value: <T = any, Event extends string = DefaultEvent, ValueProp extends string = DefaultValueProp, Formatted = T>(path: string, options?: ModelBindingOptions<T, Event, ValueProp, Formatted>) => Formatted;
841
+ on: <T = any, Event extends string = DefaultEvent, ValueProp extends string = DefaultValueProp, Formatted = T>(path: string, options?: ModelBindingOptions<T, Event, ValueProp, Formatted>) => (event: any) => void;
842
+ };
843
+ declare function useBindModel<DefaultEvent extends string = 'input', DefaultValueProp extends string = 'value'>(defaultOptions?: ModelBindingOptions<any, DefaultEvent, DefaultValueProp, any>): BindModelWithHelper<DefaultEvent, DefaultValueProp>;
844
+ declare function mergeModels<T>(a: T, b: T): T;
845
+ //#endregion
846
+ //#region src/runtime/vueCompat/router.d.ts
847
+ type RuntimeRouter = SetupContextRouter;
848
+ /**
849
+ * 在 setup 中获取与当前组件路径语义一致的原生 Router 对象。
850
+ *
851
+ * - 优先使用实例上的 `this.router`(组件路径语义)。
852
+ * - 不可用时回退到 `this.pageRouter`。
853
+ * - 低版本基础库再回退到全局 `wx.*` 路由方法。
854
+ *
855
+ * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
856
+ * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
857
+ */
858
+ declare function useNativeRouter(): RuntimeRouter;
859
+ /**
860
+ * 在 setup 中获取与当前页面路径语义一致的原生 Router 对象。
861
+ *
862
+ * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。
863
+ * - 不可用时回退到 `this.router`。
864
+ * - 低版本基础库再回退到全局 `wx.*` 路由方法。
865
+ *
866
+ * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
867
+ * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
868
+ */
869
+ declare function useNativePageRouter(): RuntimeRouter;
870
+ //#endregion
871
+ //#region src/runtime/vueCompat/templateRef.d.ts
872
+ type TemplateRef<T = unknown> = Readonly<ShallowRef<T | null>>;
873
+ declare function useTemplateRef<K extends keyof TemplateRefs>(name: K): TemplateRef<TemplateRefs[K]>;
874
+ declare function useTemplateRef<T = unknown>(name: string): TemplateRef<T>;
875
+ //#endregion
876
+ //#region src/macros/shared.d.ts
877
+ type Prettify<T> = { [K in keyof T]: T[K] } & {};
878
+ type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N;
879
+ type ComponentObjectPropsOptions = ComponentPropsOptions;
880
+ type ExtractPropTypes<P extends ComponentObjectPropsOptions> = InferProps<P>;
881
+ type DefineProps<T, BKeys extends keyof T> = Readonly<T> & { readonly [K in BKeys]-?: boolean };
882
+ type BooleanKey<T, K extends keyof T = keyof T> = K extends any ? T[K] extends boolean | undefined ? T[K] extends never | undefined ? never : K : never : never;
883
+ type DefinePropsFromArray<PropNames extends string = string> = Prettify<Readonly<{ [key in PropNames]?: any }>>;
884
+ type DefinePropsFromOptions<PP extends ComponentObjectPropsOptions = ComponentObjectPropsOptions> = Prettify<Readonly<ExtractPropTypes<PP>>>;
885
+ type NotUndefined<T> = T extends undefined ? never : T;
886
+ type MappedOmit<T, K extends keyof any> = { [P in keyof T as P extends K ? never : P]: T[P] };
887
+ type InferDefaults<T> = { [K in keyof T]?: InferDefault<T, T[K]> };
888
+ type NativeType = null | undefined | number | string | boolean | symbol | ((...args: any[]) => any);
889
+ type InferDefault<P, T> = ((props: P) => T & {}) | (T extends NativeType ? T : never);
890
+ type PropsWithDefaults<T, Defaults extends InferDefaults<T>, BKeys extends keyof T> = T extends unknown ? Readonly<MappedOmit<T, keyof Defaults>> & { readonly [K in keyof Defaults as K extends keyof T ? K : never]-?: K extends keyof T ? Defaults[K] extends undefined ? IfAny<Defaults[K], NotUndefined<T[K]>, T[K]> : NotUndefined<T[K]> : never } & { readonly [K in BKeys]-?: K extends keyof Defaults ? Defaults[K] extends undefined ? boolean | undefined : boolean : boolean } : never;
891
+ type UnionToIntersection<U> = (U extends any ? (arg: U) => any : never) extends ((arg: infer I) => any) ? I : never;
892
+ type ObjectEmitsOptions = Record<string, ((...args: any[]) => any) | null>;
893
+ type EmitsOptions = ObjectEmitsOptions | string[];
894
+ type EmitFn<Options = ObjectEmitsOptions, Event extends keyof Options = keyof Options> = Options extends Array<infer V> ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection<{ [K in Event]: Options[K] extends ((...args: infer Args) => any) ? (event: K, ...args: Args) => void : Options[K] extends any[] ? (event: K, ...args: Options[K]) => void : (event: K, ...args: any[]) => void }[Event]>;
895
+ type ComponentTypeEmits = ((...args: any[]) => any) | Record<string, any>;
896
+ type RecordToUnion<T extends Record<string, any>> = T[keyof T];
897
+ type ShortEmits<T extends Record<string, any>> = UnionToIntersection<RecordToUnion<{ [K in keyof T]: (evt: K, ...args: T[K]) => void }>>;
898
+ type ScriptSetupNativePropertyOption = WechatMiniprogram.Component.PropertyOption;
899
+ type ScriptSetupNativeMethodOption = WechatMiniprogram.Component.MethodOption;
900
+ type ScriptSetupNativeBehaviorOption = WechatMiniprogram.Component.IEmptyArray;
901
+ type ScriptSetupNativeInstance<D extends object, P extends ScriptSetupNativePropertyOption, M extends ScriptSetupNativeMethodOption> = WechatMiniprogram.Component.Instance<D, P, M, ScriptSetupNativeBehaviorOption>;
902
+ type ScriptSetupObservedProperty<TProperty extends WechatMiniprogram.Component.AllFullProperty, TInstance> = Omit<TProperty, 'observer'> & {
903
+ observer?: string | ((this: TInstance, newVal: WechatMiniprogram.Component.PropertyToData<TProperty>, oldVal: WechatMiniprogram.Component.PropertyToData<TProperty>, changedPath: Array<string | number>) => void);
904
+ };
905
+ type ScriptSetupPropertyObserver<TProperty extends WechatMiniprogram.Component.AllProperty, TInstance> = TProperty extends infer TCurrent extends WechatMiniprogram.Component.AllFullProperty ? ScriptSetupObservedProperty<TCurrent, TInstance> : TProperty;
906
+ type ScriptSetupNativeProperties<D extends object, P extends ScriptSetupNativePropertyOption, M extends ScriptSetupNativeMethodOption> = { [K in keyof P]: ScriptSetupPropertyObserver<P[K], ScriptSetupNativeInstance<D, P, M>> };
907
+ type ScriptSetupNativeMethods<D extends object, P extends ScriptSetupNativePropertyOption, M extends ScriptSetupNativeMethodOption> = M & ThisType<ScriptSetupNativeInstance<D, P, M>>;
908
+ type ScriptSetupDefineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends ScriptSetupNativePropertyOption = ScriptSetupNativePropertyOption> = Omit<DefineComponentOptions<ComponentPropsOptions, D, C, M>, 'props' | 'options' | 'data' | 'methods'> & {
909
+ /**
910
+ * props 必须通过 defineProps() 声明。
911
+ */
912
+ props?: never;
913
+ /**
914
+ * emits 必须通过 defineEmits() 声明。
915
+ */
916
+ emits?: never;
917
+ /**
918
+ * expose 必须通过 defineExpose() 声明。
919
+ */
920
+ expose?: never;
921
+ /**
922
+ * slots 必须通过 defineSlots() 声明。
923
+ */
924
+ slots?: never;
925
+ /**
926
+ * 小程序 Component 选项(multipleSlots/styleIsolation 等)。
927
+ */
928
+ options?: WechatMiniprogram.Component.ComponentOptions;
929
+ /**
930
+ * 小程序原生 properties。
931
+ */
932
+ properties?: ScriptSetupNativeProperties<D, P, M>;
933
+ /**
934
+ * 小程序原生 data。
935
+ */
936
+ data?: D | (() => D);
937
+ /**
938
+ * 小程序原生 methods。
939
+ */
940
+ methods?: ScriptSetupNativeMethods<D, P, M>;
941
+ /**
942
+ * setup 执行时机(默认 attached)。
943
+ */
944
+ setupLifecycle?: 'created' | 'attached';
945
+ };
946
+ //#endregion
947
+ //#region src/macros.d.ts
948
+ /**
949
+ * defineProps 声明(类型层宏)。
950
+ */
951
+ declare function defineProps<PropNames extends string = string>(props: PropNames[]): DefinePropsFromArray<PropNames>;
952
+ declare function defineProps<PP extends ComponentPropsOptions = ComponentPropsOptions>(props: PP): DefinePropsFromOptions<PP>;
953
+ declare function defineProps<TypeProps>(): DefineProps<TypeProps, BooleanKey<TypeProps>>;
954
+ /**
955
+ * withDefaults 为 defineProps 声明默认值(类型层)。
956
+ */
957
+ declare function withDefaults<T, BKeys extends keyof T, Defaults extends InferDefaults<T>>(props: DefineProps<T, BKeys>, defaults: Defaults): PropsWithDefaults<T, Defaults, BKeys>;
958
+ /**
959
+ * defineEmits 声明(类型层宏)。
960
+ */
961
+ declare function defineEmits<EE extends string = string>(emits?: EE[]): EmitFn<EE[]>;
962
+ declare function defineEmits<E extends EmitsOptions = EmitsOptions>(emits?: E): EmitFn<E>;
963
+ declare function defineEmits<T extends ComponentTypeEmits>(): T extends ((...args: any[]) => any) ? T : ShortEmits<T>;
964
+ /**
965
+ * defineExpose 向父级 ref 暴露成员(仅类型层)。
966
+ */
967
+ declare function defineExpose<T extends Record<string, any> = Record<string, any>>(exposed?: T): void;
968
+ /**
969
+ * defineOptions 设置 `<script setup>` 组件选项(仅类型层)。
970
+ */
971
+ declare function defineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends WechatMiniprogram.Component.PropertyOption = WechatMiniprogram.Component.PropertyOption>(options?: ScriptSetupDefineOptions<D, C, M, P>): void;
972
+ declare function defineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends WechatMiniprogram.Component.PropertyOption = WechatMiniprogram.Component.PropertyOption>(options?: () => ScriptSetupDefineOptions<D, C, M, P> | Promise<ScriptSetupDefineOptions<D, C, M, P>>): void;
973
+ /**
974
+ * defineSlots 声明 slots 类型(仅类型层)。
975
+ */
976
+ declare function defineSlots<T extends Record<string, any> = Record<string, any>>(): T;
977
+ type PageLayoutMeta = string | false | {
978
+ name: string;
979
+ props?: Record<string, unknown>;
980
+ };
981
+ interface PageMeta {
982
+ layout?: PageLayoutMeta;
983
+ [key: string]: unknown;
984
+ }
985
+ /**
986
+ * definePageMeta 声明页面级元信息(仅类型层)。
987
+ */
988
+ declare function definePageMeta(meta: PageMeta): void;
989
+ /**
990
+ * defineModel 声明 v-model 绑定(类型层宏)。
991
+ */
992
+ type DefineModelModifiers<M extends PropertyKey = string> = Record<M, true | undefined>;
993
+ type ModelRef<T, M extends PropertyKey = string, G = T, S = T> = Ref<G, S> & [ModelRef<T, M, G, S>, DefineModelModifiers<M>];
994
+ interface DefineModelTransformOptions<T, M extends PropertyKey = string, G = T, S = T> {
995
+ get?: (value: T, modifiers: DefineModelModifiers<M>) => G;
996
+ set?: (value: S, modifiers: DefineModelModifiers<M>) => T;
997
+ }
998
+ type DefineModelBaseOptions<T, M extends PropertyKey = string, G = T, S = T> = Record<string, any> & DefineModelTransformOptions<T, M, G, S>;
999
+ type DefineModelRequiredOptions<T> = {
1000
+ default: T | (() => T);
1001
+ } | {
1002
+ required: true;
1003
+ };
1004
+ declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(options: DefineModelBaseOptions<T, M, G, S> & DefineModelRequiredOptions<T>): ModelRef<T, M, G, S>;
1005
+ declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(name: string, options: DefineModelBaseOptions<T, M, G, S> & DefineModelRequiredOptions<T>): ModelRef<T, M, G, S>;
1006
+ declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(options?: DefineModelBaseOptions<T | undefined, M, G | undefined, S | undefined>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
1007
+ declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(name?: string, options?: DefineModelBaseOptions<T | undefined, M, G | undefined, S | undefined>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
1008
+ //#endregion
1009
+ export { resolveRuntimePageLayoutName as $, onUnload as $t, UpdatePerformanceListener as A, CreateAppOptions as An, onAddToFavorites as At, registerComponent as B, onPageScroll as Bt, mergeModels as C, createApp as Cn, onBeforeUpdate as Ct, useNativeInstance as D, TemplateRefs as Dn, onServerPrefetch as Dt, useAttrs as E, TemplateRefValue as En, onMounted as Et, normalizeStyle as F, SetDataDebugInfo as Fn, onLaunch as Ft, provide as G, onRouteDone as Gt, hasInjectionContext as H, onReachBottom as Ht, runSetupFunction as I, SetDataSnapshotOptions as In, onLoad as It, UsePageScrollThrottleOptions as J, onShareTimeline as Jt, provideGlobal as K, onSaveExitState as Kt, mountRuntimeInstance as L, onMemoryWarning as Lt, UseUpdatePerformanceListenerStopHandle as M, DefineAppOptions as Mn, onDetached as Mt, useUpdatePerformanceListener as N, DefineComponentOptions as Nn, onError as Nt, useSlots as O, WevuGlobalComponents as On, onUnmounted as Ot, normalizeClass as P, PageFeatures as Pn, onHide as Pt, WevuPageLayoutMap as Q, onUnhandledRejection as Qt, setRuntimeSetDataVisibility as R, onMoved as Rt, UseModelOptions as S, setWevuDefaults as Sn, onBeforeUnmount as St, useModel as T, GlobalDirectives as Tn, onErrorCaptured as Tt, inject as U, onReady as Ut, registerApp as V, onPullDownRefresh as Vt, injectGlobal as W, onResize as Wt, usePageScrollThrottle as X, onTabItemTap as Xt, UsePageScrollThrottleStopHandle as Y, onShow as Yt, PageLayoutState as Z, onThemeChange as Zt, TemplateRef as _, createWevuComponent as _n, UseIntersectionObserverResult as _t, PageMeta as a, setCurrentSetupContext as an, markNoSetData as at, useNativeRouter as b, WevuDefaults as bn, onActivated as bt, defineModel as c, DisposableMethodName as cn, registerRuntimeLayoutHosts as ct, defineProps as d, ComponentDefinition as dn, unregisterPageLayoutBridge as dt, callHookList as en, setPageLayout as et, defineSlots as f, DefineComponentTypePropsOptions as fn, unregisterRuntimeLayoutHosts as ft, EmitsOptions as g, WevuComponentConstructor as gn, UseIntersectionObserverOptions as gt, EmitFn as h, SetupFunctionWithTypeProps as hn, waitForLayoutHost as ht, PageLayoutMeta as i, setCurrentInstance as in, isNoSetData as it, UpdatePerformanceListenerResult as j, DataOption as jn, onAttached as jt, use as k, WevuGlobalDirectives as kn, onUpdated as kt, defineOptions as l, DisposableObject as ln, resolveLayoutBridge as lt, ComponentTypeEmits as m, SetupContextWithTypeProps as mn, useLayoutHosts as mt, DefineModelTransformOptions as n, getCurrentInstance as nn, syncRuntimePageLayoutStateFromRuntime as nt, defineEmits as o, DisposableBag as on, LayoutHostBinding as ot, withDefaults as p, DefineComponentWithTypeProps as pn, useLayoutBridge as pt, setGlobalProvidedValue as q, onShareAppMessage as qt, ModelRef as r, getCurrentSetupContext as rn, usePageLayout as rt, defineExpose as s, DisposableLike as sn, registerPageLayoutBridge as st, DefineModelModifiers as t, callHookReturn as tn, syncRuntimePageLayoutState as tt, definePageMeta as u, useDisposables as un, resolveLayoutHost as ut, useTemplateRef as v, createWevuScopedSlotComponent as vn, useIntersectionObserver as vt, useBindModel as w, GlobalComponents as wn, onDeactivated as wt, ModelModifiers as x, resetWevuDefaults as xn, onBeforeMount as xt, useNativePageRouter as y, defineComponent as yn, callUpdateHooks as yt, teardownRuntimeInstance as z, onPageNotFound as zt };