import type { Optic, TryA, TryT, A, B, S, T } from './optic.js'; import type { Expected } from './errors.js'; import { Eq } from '../utils.js'; interface IsoA extends A { 0: TryA extends From ? To : Expected>>; } interface IsoT extends T { 0: TryT extends From ? Eq> extends true ? From : Expected> : Expected>>; } export type Iso = Optic<'Iso', IsoA, IsoT>; export declare const iso: (there: (a: From) => To, back: (a: To) => From) => Iso; export {};