/**
* A port of `monocle-ts` experimental `Iso` to schemata-ts
*
* @since 1.4.0
*/
import { Category2 } from 'fp-ts/Category';
import { Invariant2 } from 'fp-ts/Invariant';
import { Semigroupoid2 } from 'fp-ts/Semigroupoid';
/**
* Represents an isomorphism between two types.
*
* @since 1.4.0
* @category Models
*/
export interface Iso {
readonly get: (a: A) => B;
readonly reverseGet: (b: B) => A;
}
/**
* @since 1.4.0
* @category Constructors
*/
export declare const make: (get: (a: A) => B, reverseGet: (b: B) => A) => Iso;
/**
* @since 1.4.0
* @category Instance Methods
*/
export declare const imap: (f: (a: A) => B, g: (b: B) => A) => (iso: Iso) => Iso;
/**
* @since 1.4.0
* @category Instance Methods
*/
export declare const compose: (ab: Iso) => (iso: Iso) => Iso;
/**
* @since 1.4.0
* @category Instance Methods
*/
export declare const id: () => Iso;
/**
* @since 1.4.0
* @category Instances
*/
export declare const URI = "schemata-ts/Iso";
/**
* @since 1.4.0
* @category Instances
*/
export declare type URI = typeof URI;
declare module 'fp-ts/lib/HKT' {
interface URItoKind2 {
readonly [URI]: Iso;
}
}
/**
* @since 1.4.0
* @category Instances
*/
export declare const Invariant: Invariant2;
/**
* @since 1.4.0
* @category Instances
*/
export declare const Semigroupoid: Semigroupoid2;
/**
* @since 1.4.0
* @category Instances
*/
export declare const Category: Category2;
//# sourceMappingURL=iso.d.ts.map