import type { Cloneable } from './Cloneable.js'; import type { LynxEventType } from './EventType.js'; import type { PageConfig } from './PageConfig.js'; import type { StyleInfo } from './StyleInfo.js'; export type ElementTemplateData = { id: string; type: string; idSelector?: string; class?: string[]; attributes?: Record; builtinAttributes?: Record; children?: ElementTemplateData[]; events?: { type: LynxEventType; name: string; value: string; }[]; dataset?: Record; }; export interface LynxTemplate { styleInfo: StyleInfo; pageConfig: PageConfig; customSections: { [key: string]: { type?: 'lazy'; content: Cloneable; }; }; cardType?: string; lepusCode: { root: string; [key: string]: string; }; manifest: { '/app-service.js': string; [key: string]: string; }; elementTemplate: Record; version?: number; appType: 'card' | 'lazy'; } export type BTSChunkEntry = (postMessage: undefined, module: { exports: unknown; }, exports: unknown, lynxCoreInject: unknown, Card: unknown, setTimeout: unknown, setInterval: unknown, clearInterval: unknown, clearTimeout: unknown, NativeModules: unknown, Component: unknown, ReactLynx: unknown, nativeAppId: unknown, Behavior: unknown, LynxJSBI: unknown, lynx: unknown, window: unknown, document: unknown, frames: unknown, location: unknown, navigator: unknown, localStorage: unknown, history: unknown, Caches: unknown, screen: unknown, alert: unknown, confirm: unknown, prompt: unknown, fetch: unknown, XMLHttpRequest: unknown, webkit: unknown, Reporter: unknown, print: unknown, global: unknown, requestAnimationFrame: unknown, cancelAnimationFrame: unknown) => unknown; export interface LynxJSModule { exports?: (lynx_runtime: any) => unknown; }