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 | undefined; disposeWasmContext?: () => void; toBeEnabledElement: Set; toBeDisabledElement: Set; constructor(lynxViewInstance: WASMJSBindingInjectedHandler); markExposureRelatedElementByUniqueId(element: HTMLElement, toEnable: boolean): void; generateTargetObject(element: DecoratedHTMLElement, dataset: CloneableObject): LynxCrossThreadEventTarget; getClassList(elementRef: WeakRef): string[]; getElementByUniqueId(uniqueId: number): HTMLElement | undefined; getElementByComponentId(componentId: string): HTMLElement | undefined; runWorklet(handler: { value: unknown; }, eventObject: LynxCrossThreadEvent, targetUniqueId: number, targetDataset: Record, currentTargetUniqueId: number, currentTargetDataset: Record): 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, eventName: string): void; disableElementEvent(elementRef: WeakRef, eventName: string): void; setAttribute(elementRef: WeakRef, name: string, value: string): void; removeAttribute(elementRef: WeakRef, name: string): void; }