@jsonjoy.com/reactive-rpc
Version:
Reactive-RPC is a library for building reactive APIs over WebSocket, HTTP, and other RPCs.
7 lines • 59.8 kB
TypeScript
import { ObjectValueCaller } from '../../../common/rpc/caller/ObjectValueCaller';
import { ObjectValue } from '@jsonjoy.com/json-type/lib/value/ObjectValue';
import { Services } from '../services/Services';
export declare const createRouter: (services: Services) => ObjectValue<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"block.pull", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.scan", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"limit", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").BooleanType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"event", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").OrType<[import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"new">]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"upd">, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"del">]>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.del", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"success", import("@jsonjoy.com/json-type").BooleanType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.upd", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"pull", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.view", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"view", import("@jsonjoy.com/json-type").AnyType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.get", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"block", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"uts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"tip", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.new", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"entries", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"lastSeen", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"validUntil", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").ObjectType<[]>>]>>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"time", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.remove", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>]>, import("@jsonjoy.com/json-type").ObjectType<[]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.update", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").AnyType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"entry", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"lastSeen", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"validUntil", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").ObjectType<[]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"time", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channel", import("@jsonjoy.com/json-type").StringType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"message", import("@jsonjoy.com/json-type").AnyType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub.publish", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channel", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"message", import("@jsonjoy.com/json-type").AnyType>]>, import("@jsonjoy.com/json-type").ObjectType<[]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.schema", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"typescript", import("@jsonjoy.com/json-type").StringType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.info", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"now", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"stats", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channels", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"observers", import("@jsonjoy.com/json-type").NumberType>]>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"rooms", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"entries", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"observers", import("@jsonjoy.com/json-type").NumberType>]>>, import("@jsonjoy.com/json-type").ObjectFieldType<"blocks", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blocks", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").NumberType>]>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.echo", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").AnyType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.ping", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ConstType<undefined>, import("@jsonjoy.com/json-type").ConstType<"pong">>>]>>;
export declare const createCaller: (services?: Services) => {
router: ObjectValue<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"block.pull", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.scan", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"limit", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").BooleanType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"event", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").OrType<[import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"new">]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"upd">, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"del">]>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.del", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"success", import("@jsonjoy.com/json-type").BooleanType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.upd", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"pull", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.view", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"view", import("@jsonjoy.com/json-type").AnyType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.get", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"block", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"uts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"tip", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.new", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"entries", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"lastSeen", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"validUntil", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").ObjectType<[]>>]>>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"time", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.remove", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>]>, import("@jsonjoy.com/json-type").ObjectType<[]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.update", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").AnyType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"entry", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"lastSeen", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"validUntil", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").ObjectType<[]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"time", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channel", import("@jsonjoy.com/json-type").StringType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"message", import("@jsonjoy.com/json-type").AnyType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub.publish", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channel", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"message", import("@jsonjoy.com/json-type").AnyType>]>, import("@jsonjoy.com/json-type").ObjectType<[]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.schema", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"typescript", import("@jsonjoy.com/json-type").StringType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.info", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"now", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"stats", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channels", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"observers", import("@jsonjoy.com/json-type").NumberType>]>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"rooms", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"entries", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"observers", import("@jsonjoy.com/json-type").NumberType>]>>, import("@jsonjoy.com/json-type").ObjectFieldType<"blocks", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blocks", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").NumberType>]>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.echo", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").AnyType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.ping", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ConstType<undefined>, import("@jsonjoy.com/json-type").ConstType<"pong">>>]>>;
caller: ObjectValueCaller<ObjectValue<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"block.pull", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.scan", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"limit", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").BooleanType>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"event", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").OrType<[import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"new">]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"upd">, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"del">]>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.del", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"success", import("@jsonjoy.com/json-type").BooleanType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.upd", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>]>, import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"pull", import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.view", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, import("@json