export type TSerializable = TSerializableWithDependencies | TSerializableNoDependencies; export type TSerializableWithDependencies = Readonly<{ serialize: (dependencies?: D) => T; }>; export type TSerializableNoDependencies = Readonly<{ serialize: () => T; }>;