import { ApiMiddleware, Api } from "../api"; import { UUIDGenerator } from "../utils/utils"; import { PlainUUID, PromisifyFuncReturnType } from "../utils/types"; export declare type ProxyApiMethods = { $proxy_callField(objId: PlainUUID, path: string, args: any[]): any; $proxy_getField(objId: PlainUUID, path: string): any; $proxy_setField(objId: PlainUUID, path: string, value: any): boolean; $proxy_canProxify(objId: PlainUUID, path: string): boolean; $proxy_canCall(objId: PlainUUID, path: string): boolean; }; export declare const proxyObjMiddleware: () => { middleware: ApiMiddleware, any, any>; uuidGenerator: UUIDGenerator; api: Api; boundObjects: { [objectId: string]: any; }; serveProxyObj: (obj: T) => RemoteProxyObjField; }; export declare const PROXY_OBJ_MARKER: unique symbol; declare type RemoteProxyObjField = FieldT extends void | never ? never : FieldT extends (...args: any[]) => any ? PromisifyFuncReturnType : FieldT extends any[] ? () => Promise : FieldT extends { [x: string]: any; } ? ({ [k in keyof FieldT]: RemoteProxyObjField; }) : (update?: FieldT) => Promise; export declare type RemoteProxyObj = RemoteProxyObjField; export {};