import * as E from "@effect-ts/system/Either"; import * as HKT from "../../Prelude/HKT/index.js"; import type { Any } from "../Any/index.js"; import type { Applicative } from "../Applicative/index.js"; import type { Covariant } from "../Covariant/index.js"; import type { Monad } from "../Monad/index.js"; export interface Select extends HKT.Base { readonly _Select: "Select"; readonly select: (fab: HKT.Kind B>) => (fa: HKT.Kind, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, E.Either>) => HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, B | B2>; } export declare type Selective = Select & Covariant & Any; export declare type SelectiveMonad = Selective & Monad; export declare function monad(F: Monad): SelectiveMonad; export declare function applicative(F: Applicative): SelectiveMonad; export declare function branchF(F: Selective): (lhs: HKT.Kind D1>, rhs: HKT.Kind D2>) => (fe: HKT.Kind>) => HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, D1 | D2>; export declare function ifF(F: Selective): (then_: HKT.Kind, else_: HKT.Kind) => (if_: HKT.Kind) => HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, A | B>; export declare function whenF(F: Selective): (act: HKT.Kind) => (if_: HKT.Kind) => HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, void>; //# sourceMappingURL=index.d.ts.map