import type { Kind, TypeLambda } from "@fp-ts/core/HKT"; import type { Invariant } from "@fp-ts/core/typeclass/Invariant"; /** * @category type class * @since 1.0.0 */ export interface Covariant extends Invariant { readonly map: { (f: (a: A) => B): (self: Kind) => Kind; (self: Kind, f: (a: A) => B): Kind; }; } /** * Returns a default `map` composition. * * @since 1.0.0 */ export declare const mapComposition: (F: Covariant, G: Covariant) => (f: (a: A) => B) => (self: Kind>) => Kind>; /** * Returns a default `imap` implementation. * * @since 1.0.0 */ export declare const imap: (map: (self: Kind, f: (a: A) => B) => Kind) => { (to: (a: A_1) => B_1, from: (b: B_1) => A_1): (self: Kind) => Kind; (self: Kind, to: (a: A_2) => B_2, from: (b: B_2) => A_2): Kind; }; /** * @category mapping * @since 1.0.0 */ export declare const flap: (F: Covariant) => { (self: Kind B>): (a: A) => Kind; (a: A_1, self: Kind B_1>): Kind; }; /** * @category mapping * @since 1.0.0 */ export declare const as: (F: Covariant) => { (b: B): (self: Kind) => Kind; (self: Kind, b: B_1): Kind; }; /** * @category mapping * @since 1.0.0 */ export declare const asUnit: (F: Covariant) => (self: Kind) => Kind; declare const let_: (F: Covariant) => { (name: Exclude, f: (a: A) => B): (self: Kind) => Kind; (self: Kind, name: Exclude, f: (a: A_1) => B_1): Kind; }; export { /** * @category do notation * @since 1.0.0 */ let_ as let }; //# sourceMappingURL=Covariant.d.ts.map