UNPKG

1.03 kBTypeScriptView Raw
1declare const DEHYDRATED: unique symbol;
2declare const HANDLE: unique symbol;
3export declare type Hydrated<T extends Dehydrated<any>> = T extends Dehydrated<infer U> ? U : never;
4export declare type Dehydrated<T> = {
5 [DEHYDRATED]: T;
6};
7declare const HANDLE_KEY = "--stagehand-function-handle";
8export declare type Handle = typeof HANDLE;
9export interface DehydratedHandle {
10 [HANDLE_KEY]: Handle;
11}
12export default class FunctionHandleRegistry {
13 private hydrateRemoteFunction;
14 private nextFunctionHandle;
15 private handlesByFunction;
16 private functionsByHandle;
17 constructor(hydrateRemoteFunction: (handle: Handle) => (...params: unknown[]) => unknown);
18 dehydrate<T>(root: T): Dehydrated<T>;
19 rehydrate<T extends Dehydrated<any>>(root: T): Hydrated<T>;
20 lookupFunction(handle: Handle): Function | undefined;
21 lookupHandle(f: Function): Handle | undefined;
22 releaseFunction(f: Function): void;
23 reset(): void;
24 private lookupOrGenerateHandle;
25 private generateHAndle;
26}
27export {};