• Type Parameters

    Parameters

    Returns $.Shape<$.Expand<{
        [K in string | number | symbol]: A[K] extends $.AnyShape
            ? {
                type: K;
                value: $.Input<any[any]>;
            }
            : A[K] extends $.IndexedEnumMember<T>
                ? any[any]["value"] extends $.AnyShape
                    ? {
                        type: K;
                        value: $.Input<any[any]>;
                    }
                    : {
                        type: K;
                    }
                : {
                    type: K;
                }
    }[keyof A]>, $.Expand<{
        [K in string | number | symbol]: A[K] extends $.AnyShape
            ? {
                type: K;
                value: $.Output<any[any]>;
            }
            : A[K] extends $.IndexedEnumMember<T>
                ? any[any]["value"] extends $.AnyShape
                    ? {
                        type: K;
                        value: $.Output<any[any]>;
                    }
                    : {
                        type: K;
                    }
                : {
                    type: K;
                }
    }[keyof A]>>