import { _ as LoggerInterface } from "./log-base-omQ8fkjE.cjs"; import { t as UseStringHashPool } from "./string-hash-pool-9wgUkvIQ.cjs"; import { t as Pipe } from "./pipe-Dw4EU9A_.cjs"; //#region src/common/msg/rpc.d.ts type ArgumentsType = T extends ((...args: infer A) => any) ? A : never; type ReturnType = T extends ((...args: any) => infer R) ? R : never; interface RPCOptionsBasic extends Pipe { /** No return values expected */ onlyEvents?: boolean; /** Maximum timeout for waiting for response, in milliseconds */ timeout?: number; /** Custom logger */ log?: LoggerInterface; /** Custom error handler */ onError?: (error: Error, functionName: string, args: any[]) => boolean | void; /** Custom error handler for timeouts */ onTimeoutError?: (functionName: string, args: any[]) => boolean | void; /** Throw execptions. Default: true */ exceptions?: boolean; /** */ stringHashPool?: UseStringHashPool; } interface RPCOptions extends RPCOptionsBasic { /** Names of remote functions that do not need response. */ eventNames?: (keyof Remote)[]; } interface RPCFn { /** Call the remote function and wait for the result. */ (...args: ArgumentsType): Promise>>; /** Send event without asking for response */ asEvent: (...args: ArgumentsType) => void; } type RPCReturn = { [K in keyof RemoteFunctions]: RPCFn }; declare enum RPCMode { request = 1, event = 2, resolve = 3, reject = 4 } type RPCMessage = [mode: RPCMode, id: number, method: string | number | any, ...any]; declare function useRPC(functions: LocalFunctions, options: RPCOptions): RPCReturn; declare function useRPCHub(options: RPCOptionsBasic): (additionalFunctions?: LocalFunctions, additionalEventNames?: string[]) => RPCReturn; type UseRPCHubType = ReturnType; //#endregion export { RPCOptions as a, ReturnType as c, useRPCHub as d, RPCMode as i, UseRPCHubType as l, RPCFn as n, RPCOptionsBasic as o, RPCMessage as r, RPCReturn as s, ArgumentsType as t, useRPC as u }; //# sourceMappingURL=rpc-5Ln_Xp7t.d.cts.map