registerSteps: {
    EnterStep: FunnelStepGuardOption<
        Omit<registerOptionalState, never> & Pick<
            Required<registerOptionalState>,
            never,
        >,
    >;
} & {
    VerificationStep: FunnelStepGuardOption<
        Omit<
            Omit<registerOptionalState, never> & Pick<
                Required<registerOptionalState>,
                never,
            >,
            "email",
        > & Pick<
            Required<
                Omit<registerOptionalState, never> & Pick<
                    Required<registerOptionalState>,
                    never,
                >,
            >,
            "email",
        >,
    >;
} & {
    PasswordStep: FunnelStepGuardOption<
        Omit<
            Omit<
                Omit<registerOptionalState, never> & Pick<
                    Required<registerOptionalState>,
                    never,
                >,
                "email",
            > & Pick<
                Required<
                    Omit<registerOptionalState, never> & Pick<Required<(...)>, never>,
                >,
                "email",
            >,
            "code" | "email",
        > & Pick<
            Required<
                Omit<
                    Omit<registerOptionalState, never> & Pick<Required<(...)>, never>,
                    "email",
                > & Pick<Required<Omit<(...), (...)> & Pick<(...), (...)>>, "email">,
            >,
            "code" | "email",
        >,
    >;
} & {
    NameStep: FunnelStepGuardOption<
        Omit<
            Omit<
                Omit<Omit<(...), (...)> & Pick<(...), (...)>, "email"> & Pick<
                    Required<(...) & (...)>,
                    "email",
                >,
                "code" | "email",
            > & Pick<
                Required<
                    Omit<(...) & (...), "email"> & Pick<Required<(...)>, "email">,
                >,
                "code" | "email",
            >,
            "password" | "code" | "email",
        > & Pick<
            Required<
                Omit<
                    Omit<(...) & (...), "email"> & Pick<Required<(...)>, "email">,
                    "code" | "email",
                > & Pick<
                    Required<Omit<(...), (...)> & Pick<(...), (...)>>,
                    "code" | "email",
                >,
            >,
            "password" | "code" | "email",
        >,
    >;
} & {
    BirthStep: FunnelStepGuardOption<
        Omit<
            Omit<
                Omit<Omit<(...), (...)> & Pick<(...), (...)>, "code" | "email"> & Pick<
                    Required<(...) & (...)>,
                    "code" | "email",
                >,
                "password" | "code" | "email",
            > & Pick<
                Required<
                    Omit<(...) & (...), (...) | (...)> & Pick<
                        Required<(...)>,
                        (...) | (...),
                    >,
                >,
                "password" | "code" | "email",
            >,
            "password" | "code" | "name" | "email",
        > & Pick<
            Required<
                Omit<
                    Omit<(...) & (...), (...) | (...)> & Pick<
                        Required<(...)>,
                        (...) | (...),
                    >,
                    "password" | "code" | "email",
                > & Pick<
                    Required<Omit<(...), (...)> & Pick<(...), (...)>>,
                    "password" | "code" | "email",
                >,
            >,
            "password" | "code" | "name" | "email",
        >,
    >;
} & {
    GenderStep: FunnelStepGuardOption<
        Omit<
            Omit<
                Omit<
                    Omit<(...), (...)> & Pick<(...), (...)>,
                    "password" | "code" | "email",
                > & Pick<Required<(...) & (...)>, "password" | "code" | "email">,
                "password" | "code" | "name" | "email",
            > & Pick<
                Required<
                    Omit<(...) & (...), (...) | (...) | (...)> & Pick<
                        Required<(...)>,
                        (...) | (...) | (...),
                    >,
                >,
                "password" | "code" | "name" | "email",
            >,
            "password" | "code" | "name" | "email" | "birth",
        > & Pick<
            Required<
                Omit<
                    Omit<(...) & (...), (...) | (...) | (...)> & Pick<
                        Required<(...)>,
                        (...) | (...) | (...),
                    >,
                    "password" | "code" | "name" | "email",
                > & Pick<
                    Required<Omit<(...), (...)> & Pick<(...), (...)>>,
                    "password" | "code" | "name" | "email",
                >,
            >,
            "password" | "code" | "name" | "email" | "birth",
        >,
    >;
} = ...