// Code generated by FTL. DO NOT EDIT.
package one

import (
	"context"
	ftlbuiltin "ftl/builtin"
	ftltwo "ftl/two"
	"github.com/block/ftl/common/reflection"
	"github.com/block/ftl/go-runtime/ftl"
	stdtime "time"
)

type BatchStringToTimeClient func(context.Context, []string) ([]stdtime.Time, error)

type FixtureClient func(context.Context) error

type HttpClient func(context.Context, ftlbuiltin.HttpRequest[ftl.Unit, ftl.Unit, Req]) (ftlbuiltin.HttpResponse[Resp, ftl.Unit], error)

type NothingClient func(context.Context) error

type RealmPublicClient func(context.Context) error

type SinkClient func(context.Context, SinkReq) error

type SourceClient func(context.Context) (SourceResp, error)

type StringToTimeClient func(context.Context, string) (stdtime.Time, error)

type VerbClient func(context.Context, Req) (Resp, error)

func init() {
	reflection.Register(
		reflection.SumType[Animal](
			*new(Dog),
			*new(Lion),
		),
		reflection.SumType[BlobOrList](
			*new(Blob),
			*new(List),
		),
		reflection.SumType[Pet](
			*new(Cat),
			*new(Dog),
		),
		reflection.SumType[PrivateEnum](
			*new(ExportedStruct),
			*new(PrivateStruct),
			*new(WithoutDirectiveStruct),
		),
		reflection.SumType[TypeEnum](
			*new(AliasedStruct),
			*new(InlineStruct),
			*new(Option),
			*new(ValueEnum),
		),
		reflection.SumType[ftltwo.TypeEnum](
			*new(ftltwo.Exported),
			*new(ftltwo.List),
			*new(ftltwo.Scalar),
			*new(ftltwo.WithoutDirective),
		),

		reflection.ProvideResourcesForVerb(
			BatchStringToTime,
		),

		reflection.ProvideResourcesForVerb(
			Fixture,
		),

		reflection.ProvideResourcesForVerb(
			Http,
		),

		reflection.ProvideResourcesForVerb(
			Nothing,
		),

		reflection.ProvideResourcesForVerb(
			RealmPublic,
		),

		reflection.ProvideResourcesForVerb(
			Sink,
		),

		reflection.ProvideResourcesForVerb(
			Source,
		),

		reflection.ProvideResourcesForVerb(
			StringToTime,
		),

		reflection.ProvideResourcesForVerb(
			Verb,
		),
	)
}
