import type { Has, Tag } from "../Has/index.js"; import type { Sync } from "./core.js"; export declare type ShapeFn = Pick Sync ? ((...args: ARGS) => Sync) 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) => Sync ? (...args: ARGS) => Sync, E, A> : never; } & { [k in Cns]: T[k] extends Sync ? Sync, E, A> : never; } & { [k in Values]: Sync, 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]) => Sync, __trace?: string) => Sync, E_, A_>; }; export declare function deriveAccessM(H: Tag): (generics: Gens[]) => DerivedAccessM; export declare type DerivedAccess = { [k in Gens]: (f: (_: T[k]) => A_, __trace?: string) => Sync, never, A_>; }; export declare function deriveAccess(H: Tag): (generics: Gens[]) => DerivedAccess; //# sourceMappingURL=derive.d.ts.map