import type { Kind, TypeClass, TypeLambda } from "effect/HKT"; /** * @category type class * @since 0.24.0 */ export interface Invariant extends TypeClass { readonly imap: { (to: (a: A) => B, from: (b: B) => A): (self: Kind) => Kind; (self: Kind, to: (a: A) => B, from: (b: B) => A): Kind; }; } /** * Returns a default ternary `imap` composition. * * @since 0.24.0 */ export declare const imapComposition: (F: Invariant, G: Invariant) => (self: Kind>, to: (a: A) => B, from: (b: B) => A) => Kind>; /** * @category do notation * @since 0.24.0 */ export declare const bindTo: (F: Invariant) => { (name: N): (self: Kind) => Kind; (self: Kind, name: N): Kind; }; /** * Convert a value in a singleton array in a given effect. * * @since 0.24.0 */ export declare const tupled: (F: Invariant) => (self: Kind) => Kind; //# sourceMappingURL=Invariant.d.ts.map