import type { Optic, TryA, TryT, A, B, S, T } from './optic.js'; import type { Expected } from './errors.js'; import { Eq } from '../utils.js'; interface LensA extends A { 0: TryA extends From ? To : Expected>>; } interface LensT extends T { 0: TryT extends From ? Eq> extends true ? From : Expected> : Expected>>; } export type Lens = Optic<'Lens', LensA, LensT>; export declare const lens: (view: (v: From) => To, update: (v: From, u: To) => From) => Lens; export {};