import type { SectionRegistration } from '@vigilkids/section-core'; import type { Component } from 'vue'; import { defineAsyncComponent } from 'vue'; /** Vue 组件工厂函数 */ type ComponentFactory = () => Promise<{ default: Component; } | Component>; /** 扩展注册信息(包含 Vue 组件工厂) */ interface VueSectionRegistration extends SectionRegistration { component: ComponentFactory; } /** Vue 适配的 Section 注册表 */ declare class VueSectionRegistry { private core; private components; private frozen; /** 注册 Section 组件(可选 productCode 用于产品级覆盖) */ register(registration: VueSectionRegistration & { productCode?: string; }): void; /** 解析组件 — 优先匹配产品级组件,回退到共享组件 */ resolve(type: string, productCode?: string): ReturnType | null; /** 获取注册元数据 */ getRegistration(name: string): SectionRegistration | undefined; /** 获取所有已注册组件名 */ names(): string[]; /** 冻结注册表 */ freeze(): void; get isFrozen(): boolean; get size(): number; } /** 获取注册表实例(Vue composable) */ export declare function useRegistry(): VueSectionRegistry; /** 注册 Section 组件(全局函数,在模块 import 阶段调用) */ export declare function registerSection(registration: VueSectionRegistration & { productCode?: string; }): void; export {};