import { Effect } from "@effect/core/io/Effect/definition"; import { Tag } from "@tsplus/stdlib/service/Tag"; export type ShapeFn = Pick Effect ? ((...args: ARGS) => Effect) extends T[k] ? k : never : never; }[keyof T]>; export type ShapeCn = Pick ? k : never; }[keyof T]>; export type DerivedLifted, Cns extends keyof ShapeCn, Values extends keyof T> = { [k in Fns]: T[k] extends (...args: infer ARGS) => Effect ? (...args: ARGS) => Effect : never; } & { [k in Cns]: T[k] extends Effect ? Effect : never; } & { [k in Values]: Effect; }; /** * @tsplus static effect/core/io/Effect.Ops deriveLifted * @tsplus location "@effect/core/io/Effect/operations/derive" */ export declare function deriveLifted(S: Tag): = never, Cns extends keyof ShapeCn = never, Values extends keyof T = never>(functions: Fns[], effects: Cns[], values: Values[]) => DerivedLifted; export type DerivedAccessM = { [k in Gens]: (f: (_: T[k]) => Effect) => Effect; }; /** * @tsplus static effect/core/io/Effect.Ops deriveAccessEffect * @tsplus location "@effect/core/io/Effect/operations/derive" */ export declare function deriveAccessEffect(S: Tag): (generics: Gens[]) => DerivedAccessM; export type DerivedAccess = { [k in Gens]: (f: (_: T[k]) => A_) => Effect; }; /** * @tsplus static effect/core/io/Effect.Ops deriveAccess * @tsplus location "@effect/core/io/Effect/operations/derive" */ export declare function deriveAccess(S: Tag): (generics: Gens[]) => DerivedAccess; //# sourceMappingURL=derive.d.ts.map