import type * as HKT from "../HKT/index.js"; import type { Monad } from "../Monad/index.js"; export declare class GenHKT { readonly effect: T; constructor(effect: T); [Symbol.iterator](): Generator, A, any>; } export declare class GenLazyHKT { readonly effect: () => T; constructor(effect: () => T); [Symbol.iterator](): Generator, A, any>; } /** * To be used with multi-shot monads, required adapter to be lazy * and is O(n^2) perf wise because the generator needs to be replayed */ export declare function genWithHistoryF(_: () => HKT.Kind): GenLazyHKT, A>; }>(F: Monad, config?: { adapter?: ADAPTER; }): , any>, AEff>(f: (i: ADAPTER) => Generator) => HKT.Kind>, HKT.Infer>, HKT.Infer>, HKT.Infer>, HKT.Infer>, HKT.Infer>, HKT.Infer>, HKT.Infer>, AEff>; /** * To be used in one-shot monads, adapter is eager and perf is native */ export declare function genF(_: HKT.Kind): GenHKT, A>; }>(F: Monad, config?: { adapter?: ADAPTER; }): , any>, AEff>(f: (i: ADAPTER) => Generator) => HKT.Kind, HKT.Infer, HKT.Infer, HKT.Infer, HKT.Infer, HKT.Infer, HKT.Infer, HKT.Infer, AEff>; //# sourceMappingURL=gen.d.ts.map