import { MainApp } from './babylonjs/MainApp'; import { AppConfig } from './babylonjs/AppConfig'; import configurator, { ConfiguratorParams } from './components/conf'; import auth from './components/auth'; import { on } from './utils/event'; declare global { interface Window { faceSDK?: Record; yiyu?: Record; } } type InitParams = { container?: string; modelUrlList?: string[]; onSuccess?: () => void; onError?: (error?: unknown) => void; env?: { envPath?: string; intensity?: number; rotationY?: number; }; }; let mainApp: MainApp | null = null; const kernel = { /** 初始化应用 */ init: async function (params: InitParams): Promise { if (!params) { console.error('params is required'); return; } mainApp = new MainApp(); mainApp.loadAConfig({ container: params.container || 'renderDom', modelUrlList: params.modelUrlList || [], success: params.onSuccess ?? null, error: params.onError ?? null, env: params.env }); await mainApp.Awake(); await mainApp.loadModel(); }, }; if (!window.faceSDK) { window.faceSDK = {}; } window.faceSDK.kernel = kernel; if (!window.yiyu) { window.yiyu = {}; } window.yiyu.kernel = kernel; window.yiyu.onAppLoaded = () => { }; window.yiyu.onSingleSignFinished = (_text: string) => { }; window.yiyu.onSentenceFinished = (_text: string) => { }; window.yiyu.onSentenceChanged = (_data: unknown) => { }; window.yiyu.onGloss = (_gloss: unknown) => { }; window.onload = () => { }; export { kernel };