import type { AllKeys, MergeUnion, PickType } from './utils.js'; export type SuperStructArray, Data, ArrayData = unknown> = { [Property in AllKeys]?: [T] extends [any] ? NonNullable> extends Record ? ArrayData & SuperStructArray>>, Data, ArrayData> : NonNullable> extends (infer A)[] ? ArrayData & Record extends Record ? SuperStructArray>, Data, ArrayData> : Data> : Data : never; }; export type SuperStruct = Partial<{ [Property in AllKeys]: [T] extends [any] ? NonNullable extends Record ? SuperStruct>, Data> : NonNullable extends (infer A)[] ? NonNullable extends Record ? SuperStruct>, Data> : Data : Data : never; }>;