Type Utils
    Preparing search index...

    Type Alias Struct<T, U>

    Struct: U extends PrimitiveType
        ? T extends "enum"
            ? BaseStruct<"enum", U>
            : T extends "primitive"
                ? BaseStruct<"primitive", PrimitiveType>
                : T extends "union"
                    ? Spread<
                        [
                            BaseStruct<"union", U>,
                            {
                                tree: V1.Struct<
                                    U extends PrimitiveType ? GetPrimitiveTag<(...)> : "object",
                                    U,
                                >[];
                            },
                        ],
                    >
                    : T extends "intersection"
                        ? Spread<
                            [
                                BaseStruct<"intersection", U>,
                                { tree: V1.Struct<(...) extends (...) ? (...) : (...), U>[] },
                            ],
                        >
                        : T extends "any"
                            ? BaseStruct<"any", any>
                            : T extends "undefined"
                                ? BaseStruct<"undefined", undefined>
                                : T extends "null"
                                    ? BaseStruct<"null", null>
                                    : U extends boolean
                                        ? BaseStruct<"boolean", boolean>
                                        : BaseStruct<(...), (...)> & { tree?: ... }
        : U extends (infer V)[]
            ? Spread<
                [
                    BaseStruct<"object", U>,
                    {
                        entries: V1.Struct<
                            V extends PrimitiveType ? GetPrimitiveTag<V> : "object",
                            V,
                        >;
                    },
                ],
            >
            : U extends Function
                ? BaseStruct<"function", U>
                : U extends object ? V1.ObjectStruct<U> : never

    Type Parameters