UNPKG

json-api-nestjs

Version:
756 lines (755 loc) 26.6 kB
import { z, ZodArray, ZodLiteral, ZodNumber, ZodObject, ZodOptional, ZodString, ZodUnion } from 'zod'; import { MapController } from '../../types'; import { TupleOfEntityRelation, ZodEntityProps } from '../../../mixin/types'; import { EntityClass, ObjectLiteral } from '../../../../types'; export declare enum Operation { add = "add", update = "update", remove = "remove" } declare const literalSchema: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>; type Literal = z.infer<typeof literalSchema>; type Json = Literal | { [key: string]: Json; } | Json[]; declare const zodGeneralData: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; type ZodGeneral = typeof zodGeneralData; export type ZodAdd<T extends string> = ReturnType<typeof zodAdd<T>>; export declare const zodAdd: <T extends string>(type: T) => z.ZodObject<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>, any> extends infer T_3 ? { [k_2 in keyof T_3]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>, any>[k_2]; } : never, z.baseObjectInputType<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }> extends infer T_4 ? { [k_3 in keyof T_4]: z.baseObjectInputType<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>[k_3]; } : never>; export type ZodUpdate<T extends string> = ReturnType<typeof zodUpdate<T>>; export declare const zodUpdate: <T extends string>(type: T) => z.ZodObject<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>, any> extends infer T_3 ? { [k_2 in keyof T_3]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>, any>[k_2]; } : never, z.baseObjectInputType<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }> extends infer T_4 ? { [k_3 in keyof T_4]: z.baseObjectInputType<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>[k_3]; } : never>; export type ZodRemove<T extends string> = ReturnType<typeof zodRemove<T>>; export declare const zodRemove: <T extends string>(type: T) => z.ZodObject<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; }>, any> extends infer T_3 ? { [k_2 in keyof T_3]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; }>, any>[k_2]; } : never, z.baseObjectInputType<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; }> extends infer T_4 ? { [k_3 in keyof T_4]: z.baseObjectInputType<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<T>; id: z.ZodString; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>, any>[k]; } : never, z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ type: z.ZodLiteral<T>; id: z.ZodString; }>[k_1]; } : never>; }>[k_3]; } : never>; export type ZodOperationRel<E extends ObjectLiteral, O extends Operation> = ReturnType<typeof zodOperationRel<E, O>>; export declare const zodOperationRel: <E extends ObjectLiteral, O extends Operation>(type: string, rel: TupleOfEntityRelation<E>, typeOperation: O) => z.ZodObject<{ op: z.ZodLiteral<O>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<O>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ op: z.ZodLiteral<O>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>, any>[k]; } : never, z.baseObjectInputType<{ op: z.ZodLiteral<O>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ op: z.ZodLiteral<O>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }>[k_1]; } : never>; export type ZodInputArray = ZodArray<ZodObject<{ op: ZodLiteral<Operation>; ref: ZodObject<{ type: ZodString; id: ZodOptional<ZodString>; relationship: ZodOptional<ZodString>; tmpId: ZodOptional<ZodUnion<[ZodNumber, ZodString]>>; }>; data: ZodOptional<ZodGeneral>; }>, 'atleastone'>; export type ZodInputOperation<E extends ObjectLiteral = ObjectLiteral> = ReturnType<typeof zodInputOperation<E>>; export type InputOperation<E extends ObjectLiteral> = z.infer<ZodInputOperation<E>>; export type InputArray = z.infer<ZodInputArray>; export declare function zodInputOperation<E extends ObjectLiteral>(mapController: MapController<E>, entityMapProps: Map<EntityClass<E>, ZodEntityProps<E>>): z.ZodObject<{ "atomic:operations": z.ZodArray<z.ZodUnion<[z.ZodObject<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; tmpId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>; }, "strict", z.ZodTypeAny, { type: string; tmpId?: string | number | undefined; }, { type: string; tmpId?: string | number | undefined; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, { ref: { type: string; tmpId?: string | number | undefined; }; op: Operation.add; data: Json; }, { ref: { type: string; tmpId?: string | number | undefined; }; op: Operation.add; data: Json; }>, z.ZodObject<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; }, "strict", z.ZodTypeAny, { id: string; type: string; }, { id: string; type: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, { ref: { id: string; type: string; }; op: Operation.update; data: Json; }, { ref: { id: string; type: string; }; op: Operation.update; data: Json; }>, z.ZodObject<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; }, "strict", z.ZodTypeAny, { id: string; type: string; }, { id: string; type: string; }>; }, "strict", z.ZodTypeAny, { ref: { id: string; type: string; }; op: Operation.remove; }, { ref: { id: string; type: string; }; op: Operation.remove; }>, z.ZodObject<{ op: z.ZodLiteral<Operation.add>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, { ref: { id: string; type: string; relationship: string; }; op: Operation.add; data: Json; }, { ref: { id: string; type: string; relationship: string; }; op: Operation.add; data: Json; }>, z.ZodObject<{ op: z.ZodLiteral<Operation.remove>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, { ref: { id: string; type: string; relationship: string; }; op: Operation.remove; data: Json; }, { ref: { id: string; type: string; relationship: string; }; op: Operation.remove; data: Json; }>, z.ZodObject<{ op: z.ZodLiteral<Operation.update>; ref: z.ZodObject<{ type: z.ZodLiteral<string>; id: z.ZodString; relationship: z.ZodUnion<[z.ZodLiteral<string>, z.ZodLiteral<string>, ...z.ZodLiteral<string>[]]>; }, "strict", z.ZodTypeAny, { id: string; type: string; relationship: string; }, { id: string; type: string; relationship: string; }>; data: z.ZodNullable<z.ZodType<Json, z.ZodTypeDef, Json>>; }, "strict", z.ZodTypeAny, { ref: { id: string; type: string; relationship: string; }; op: Operation.update; data: Json; }, { ref: { id: string; type: string; relationship: string; }; op: Operation.update; data: Json; }>]>, "atleastone">; }, "strict", z.ZodTypeAny, { "atomic:operations": [{ ref: { type: string; tmpId?: string | number | undefined; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; }; op: Operation.update; data: Json; } | { ref: { id: string; type: string; }; op: Operation.remove; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.remove; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.update; data: Json; }, ...({ ref: { type: string; tmpId?: string | number | undefined; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; }; op: Operation.update; data: Json; } | { ref: { id: string; type: string; }; op: Operation.remove; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.remove; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.update; data: Json; })[]]; }, { "atomic:operations": [{ ref: { type: string; tmpId?: string | number | undefined; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; }; op: Operation.update; data: Json; } | { ref: { id: string; type: string; }; op: Operation.remove; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.remove; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.update; data: Json; }, ...({ ref: { type: string; tmpId?: string | number | undefined; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; }; op: Operation.update; data: Json; } | { ref: { id: string; type: string; }; op: Operation.remove; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.add; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.remove; data: Json; } | { ref: { id: string; type: string; relationship: string; }; op: Operation.update; data: Json; })[]]; }>; export {};