import { H as StreamingResponse } from "./agent-tool-types-DSteYkkS.js"; //#region src/serializable.d.ts type SerializablePrimitive = undefined | null | string | number | boolean; type NonSerializable = | Function | symbol | bigint | Date | RegExp | Map | Set | WeakMap | WeakSet | Error | ArrayBuffer | SharedArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array; type MaxDepth = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; type Increment = [0, ...D]; type IsMaxDepth = D["length"] extends MaxDepth["length"] ? true : false; type SerializableValue = | undefined | null | string | number | boolean | { [key: string]: SerializableValue; } | SerializableValue[]; type CanSerialize = IsMaxDepth extends true ? true : T extends Seen ? true : T extends SerializablePrimitive ? true : T extends NonSerializable ? false : T extends readonly (infer U)[] ? CanSerialize> : T extends object ? unknown extends T ? true : { [K in keyof T]: CanSerialize< T[K], Seen | T, Increment >; } extends { [K in keyof T]: true } ? true : false : true; type CanSerializeReturn = T extends void ? true : T extends Promise ? CanSerialize : CanSerialize; type SerializableReturnValue = | SerializableValue | void | Promise | Promise; type IsSerializableParam = IsMaxDepth extends true ? true : T extends Seen ? true : T extends SerializablePrimitive ? true : T extends NonSerializable ? false : T extends readonly (infer U)[] ? IsSerializableParam> : T extends object ? unknown extends T ? true : { [K in keyof T]: IsSerializableParam< T[K], Seen | T, Increment >; } extends { [K in keyof T]: true } ? true : false : true; type AllSerializableValues = A extends [infer First, ...infer Rest] ? IsSerializableParam extends true ? AllSerializableValues : false : true; type Method = (...args: any[]) => any; type ClientParameters = T extends (...args: infer A) => unknown ? A extends [StreamingResponse, ...infer Rest] ? Rest : A : never; type IsUnknown = [unknown] extends [T] ? [T] extends [unknown] ? true : false : false; type UnwrapPromise = T extends Promise ? U : T; type RPCMethod = T extends Method ? T extends (...arg: infer A) => infer R ? AllSerializableValues> extends true ? A extends [StreamingResponse, ...unknown[]] ? T : CanSerializeReturn extends true ? T : IsUnknown> extends true ? T : never : never : never : never; //#endregion export { ClientParameters, Method, RPCMethod, SerializableReturnValue, SerializableValue }; //# sourceMappingURL=serializable.d.ts.map