import type { Has, Tag } from "../Has/index.js"; import type { Async } from "./core.js"; export declare type ShapeFn = Pick Async ? ((...args: ARGS) => Async) extends T[k] ? k : never : never; }[keyof T]>; export declare type ShapeCn = Pick ? k : never; }[keyof T]>; export declare type DerivedLifted, Cns extends keyof ShapeCn, Values extends keyof T> = { [k in Fns]: T[k] extends (...args: infer ARGS) => Async ? (...args: ARGS) => Async, E, A> : never; } & { [k in Cns]: T[k] extends Async ? Async, E, A> : never; } & { [k in Values]: Async, never, T[k]>; }; export declare function deriveLifted(H: Tag): = never, Cns extends keyof ShapeCn = never, Values extends keyof T = never>(functions: Fns[], effects: Cns[], values: Values[]) => DerivedLifted; export declare type DerivedAccessM = { [k in Gens]: (f: (_: T[k]) => Async, __trace?: string) => Async, E_, A_>; }; export declare function deriveAccessM(H: Tag): (generics: Gens[]) => DerivedAccessM; export declare type DerivedAccess = { [k in Gens]: (f: (_: T[k]) => A_, __trace?: string) => Async, never, A_>; }; export declare function deriveAccess(H: Tag): (generics: Gens[]) => DerivedAccess; //# sourceMappingURL=derive.d.ts.map