|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /**
- * @since 2.11.0
- */
- import { Option } from './Option'
- import { Either } from './Either'
- /**
- * @since 2.11.0
- */
- export interface Refinement<A, B extends A> {
- (a: A): a is B
- }
- /**
- * Returns a `Refinement` from a `Option` returning function.
- * This function ensures that a `Refinement` definition is type-safe.
- *
- * @category lifting
- * @since 2.11.0
- */
- export declare const fromOptionK: <A, B extends A>(getOption: (a: A) => Option<B>) => Refinement<A, B>
- /**
- * @category lifting
- * @since 2.11.0
- */
- export declare const fromEitherK: <A, B extends A>(getEither: (a: A) => Either<unknown, B>) => Refinement<A, B>
- /**
- * @category constructors
- * @since 2.11.0
- */
- export declare const id: <A>() => Refinement<A, A>
- /**
- * @since 2.11.0
- */
- export declare const not: <A, B extends A>(refinement: Refinement<A, B>) => Refinement<A, Exclude<A, B>>
- /**
- * @since 2.11.0
- */
- export declare const or: <A, C extends A>(
- second: Refinement<A, C>
- ) => <B extends A>(first: Refinement<A, B>) => Refinement<A, C | B>
- /**
- * @since 2.11.0
- */
- export declare const and: <A, C extends A>(
- second: Refinement<A, C>
- ) => <B extends A>(first: Refinement<A, B>) => Refinement<A, B & C>
- /**
- * @since 2.11.0
- */
- export declare const zero: <A, B extends A>() => Refinement<A, B>
- /**
- * @since 2.11.0
- */
- export declare const compose: <A, B extends A, C extends B>(
- bc: Refinement<B, C>
- ) => (ab: Refinement<A, B>) => Refinement<A, C>
|