import type * as P from "@principia/prelude"; import type { Separated } from "@principia/prelude/Utils"; import type { Either } from "../Either"; import type { Predicate, Refinement } from "../Function"; import type { Option, URI, V } from "./model"; export declare const filter_: { (fa: Option, refinement: Refinement): Option; (fa: Option, predicate: Predicate): Option; }; export declare const filter: { (refinement: Refinement): (fa: Option) => Option; (predicate: Predicate): (fa: Option) => Option; }; export declare const partition_: { (fa: Option, refinement: Refinement): Separated, Option>; (fa: Option, predicate: Predicate): Separated, Option>; }; export declare const partition: { (refinement: Refinement): (fa: Option) => Separated, Option>; (predicate: Predicate): (fa: Option) => Separated, Option>; }; export declare const mapEither_: (fa: Option, f: (a: A) => Either) => Separated, Option>; export declare const mapEither: ( f: (a: A) => Either ) => (fa: Option) => Separated, Option>; /** * ```haskell * mapOption_ :: Filterable f => (f a, (a -> Maybe b)) -> f b * ``` */ export declare const mapOption_: (fa: Option, f: (a: A) => Option) => Option; /** * ```haskell * mapOption :: Filterable f => (a -> Maybe b) -> f a -> f b * ``` */ export declare const mapOption: (f: (a: A) => Option) => (fa: Option) => Option; export declare const Filterable: P.Filterable<[URI], V>; //# sourceMappingURL=filterable.d.ts.map