• 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]>>