UNPKG

@lynx-js/web-core

Version:

This is an internal experimental package, do not use

37 lines (36 loc) 2.44 kB
import type { LynxCrossThreadEvent, LynxCrossThreadEventTarget, DecoratedHTMLElement, RustMainthreadContextBinding, CloneableObject, MainThreadGlobalThis } from '../../../types/index.js'; import type { MainThreadWasmContext } from '../../wasm.js'; import type { BackgroundThread } from '../Background.js'; import type { ExposureServices } from '../ExposureServices.js'; export type WASMJSBindingInjectedHandler = { rootDom: ShadowRoot; backgroundThread: BackgroundThread; exposureServices: ExposureServices; mainThreadGlobalThis: MainThreadGlobalThis; }; export declare class WASMJSBinding implements RustMainthreadContextBinding { #private; readonly lynxViewInstance: WASMJSBindingInjectedHandler; wasmContext: InstanceType<MainThreadWasmContext> | undefined; disposeWasmContext?: () => void; toBeEnabledElement: Set<HTMLElement>; toBeDisabledElement: Set<HTMLElement>; constructor(lynxViewInstance: WASMJSBindingInjectedHandler); markExposureRelatedElementByUniqueId(element: HTMLElement, toEnable: boolean): void; generateTargetObject(element: DecoratedHTMLElement, dataset: CloneableObject): LynxCrossThreadEventTarget; getClassList(elementRef: WeakRef<HTMLElement>): string[]; getElementByUniqueId(uniqueId: number): HTMLElement | undefined; getElementByComponentId(componentId: string): HTMLElement | undefined; runWorklet(handler: { value: unknown; }, eventObject: LynxCrossThreadEvent, targetUniqueId: number, targetDataset: Record<string, string>, currentTargetUniqueId: number, currentTargetDataset: Record<string, string>): void; publishEvent(handlerName: string, parentComponentId: string | undefined, eventObject: LynxCrossThreadEvent, targetUniqueId: number, targetDataset: CloneableObject, currentTargetUniqueId: number, currentTargetDataset: CloneableObject): void; addEventListener(eventName: string): void; dispose(): void; postTimingFlags(flags: string[], pipelineId?: string): void; updateExposureStatus(enabledExposureElements: HTMLElement[], disabledExposureElements: HTMLElement[]): void; enableElementEvent(elementRef: WeakRef<HTMLElement>, eventName: string): void; disableElementEvent(elementRef: WeakRef<HTMLElement>, eventName: string): void; setAttribute(elementRef: WeakRef<HTMLElement>, name: string, value: string): void; removeAttribute(elementRef: WeakRef<HTMLElement>, name: string): void; }