import { Element } from './api/element.js'; import type { MainThreadRefInitValuePatch, Worklet, WorkletRef, WorkletRefId, WorkletRefImpl } from './bindings/types.js'; import type { MainThreadObjectFactory } from './mainThreadObject.js'; interface RefImpl { _workletRefMap: Record; _firstScreenWorkletRefMap: Record; updateWorkletRef(refImpl: WorkletRefImpl, element: ElementNode | null): void; updateWorkletRefInitValueChanges(patch: MainThreadRefInitValuePatch): void; registerMainThreadObjectType(type: string, create: MainThreadObjectFactory | Worklet): void; clearFirstScreenWorkletRefMap(): void; } declare function initWorkletRef(): RefImpl; declare const createWorkletRef: (id: WorkletRefId, value: T) => WorkletRef; declare function isHydratedWorkletValue(value: unknown): value is object; declare const getFromWorkletRefMap: (refImpl: WorkletRefImpl) => object | undefined; declare function removeValueFromWorkletRefMap(id: WorkletRefId): void; declare function hydrateWorkletValue(handle: WorkletRefImpl, value: object): void; declare function updateWorkletRefInitValueChanges(patch: MainThreadRefInitValuePatch): void; export { type RefImpl, createWorkletRef, initWorkletRef, getFromWorkletRefMap, removeValueFromWorkletRefMap, hydrateWorkletValue, isHydratedWorkletValue, updateWorkletRefInitValueChanges, };