/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import type { OptimisticConcurrencyException } from "../../client/errors.js" import type * as Effect from "../../Effect.js" import type * as Option from "../../Option.js" import type * as S from "../../Schema.js" export interface Mapped1 { all: Effect.Effect save: (...xes: readonly A[]) => Effect.Effect find: (id: A[IdKey]) => Effect.Effect, S.SchemaError, R> } // TODO: auto use project, and select fields from the From side of schema only export interface Mapped2 { all: Effect.Effect } export interface Mapped { (schema: S.Codec): Mapped1 // TODO: constrain on Encoded2 having to contain only fields that fit Encoded (schema: S.Codec): Mapped2 } export interface MM { (schema: S.Codec): Effect.Effect, never, Repo> // TODO: constrain on Encoded2 having to contain only fields that fit Encoded (schema: S.Codec): Effect.Effect, never, Repo> }