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 Contravariant extends Invariant { readonly contramap: { (f: (b: B) => A): (self: Kind) => Kind; (self: Kind, f: (b: B) => A): Kind; }; } /** * Composing two contravariant functors yields a Covariant functor. * * Returns a default binary `map` composition. * * @since 1.0.0 */ export declare const contramapComposition: (F: Contravariant, G: Contravariant) => (self: Kind>, f: (a: A) => B) => Kind>; /** * Returns a default `imap` implementation. * * @since 1.0.0 */ export declare const imap: (contramap: (self: Kind, f: (b: B) => A) => 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; }; //# sourceMappingURL=Contravariant.d.ts.map