import type { Optic, Try, Try2 } from './standalone/optic.js'; import type { Apply, Apply2, HKT, HKT2 } from './hkt.js'; import type { Simplify } from './utils.js'; import type { Equivalence, Iso, Lens, Prism, Traversal, Getter, AffineFold, Fold, Setter, Params, OpticParams } from './index.js'; export declare function get(optic: Optic, source: S): Apply; export declare function get(optic: Equivalence | Iso | Lens | Getter, source: S): A; type Preview = Apply extends infer AU ? Try : never; export declare function preview(optic: Optic, source: S): Preview; export declare function preview(optic: Prism | Traversal | AffineFold | Fold, source: S): A | undefined; type Collect = Apply extends infer AU ? Try : never; export declare function collect(optic: Optic, source: S): Collect; export declare function collect(optic: Prism | Traversal | Fold, source: S): A[]; type Modify = Apply extends infer AU ? Apply2 extends infer TU ? Try2> : never : never; export declare function modify(optic: Optic, f: (a: Apply) => B, source: S): Modify; export declare function modify(optic: Equivalence | Iso | Lens | Prism | Traversal, f: (a: A) => B, source: S): Simplify>; type Set = Apply2 extends infer TU ? Try> : never; export declare function set(optic: Optic, value: B, source: S): Set; export declare function set(optic: Equivalence | Iso | Lens | Prism | Traversal | Setter, value: B, source: S): Simplify>; export declare function remove(optic: Optic, source: S): S; export declare function remove(optic: Prism, any> | Traversal, any>, source: S): S; export {};