@lynx-js/web-core
Version:
This is an internal experimental package, do not use
37 lines (36 loc) • 2.44 kB
TypeScript
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;
}