/** * @since 0.2.0 */ import { Field } from 'fp-ts/lib/Field'; import { Predicate } from 'fp-ts/lib/function'; import { Monoid } from 'fp-ts/lib/Monoid'; import { Ord } from 'fp-ts/lib/Ord'; import { Ring } from 'fp-ts/lib/Ring'; import { Semigroup } from 'fp-ts/lib/Semigroup'; import { Semiring } from 'fp-ts/lib/Semiring'; import { Eq } from 'fp-ts/lib/Eq'; import { Iso, Prism } from 'monocle-ts'; /** * @since 0.2.0 */ export interface Newtype { readonly _URI: URI; readonly _A: A; } /** * @since 0.2.0 */ export declare type AnyNewtype = Newtype; /** * @since 0.2.0 */ export declare type URIOf = N['_URI']; /** * @since 0.2.0 */ export declare type CarrierOf = N['_A']; /** * @since 0.3.0 */ export declare const getEq: >(S: Eq) => Eq; /** * @since 0.2.0 */ export declare const getOrd: >(O: Ord) => Ord; /** * @since 0.2.0 */ export declare const getSemigroup: >(S: Semigroup) => Semigroup; /** * @since 0.2.0 */ export declare const getMonoid: >(M: Monoid) => Monoid; /** * @since 0.2.0 */ export declare const getSemiring: >(S: Semiring) => Semiring; /** * @since 0.2.0 */ export declare const getRing: >(R: Ring) => Ring; /** * @since 0.2.0 */ export declare const getField: >(F: Field) => Field; /** * @since 0.2.0 */ export declare function iso(): Iso>; /** * @since 0.2.0 */ export interface Concat, N2 extends Newtype>> extends Newtype & URIOf, CarrierOf> { } /** * @since 0.2.0 */ export interface Extends extends Newtype, CarrierOf> { } /** * @since 0.2.0 */ export declare function prism(predicate: Predicate>): Prism, S>;