export * from "fp-ts/Option"; import { IO } from "fp-ts/IO"; import * as O from "fp-ts/Option"; import { Option } from "fp-ts/Option"; export type ExtractOptionType> = T extends Option ? A : never; export declare function chainFirstIOK(f: (a: A) => IO): (o: Option) => O.Option; export declare const doIfSome: typeof chainFirstIOK; export declare function doIfNone(f: () => IO): (o: Option) => O.Option; export declare function getOrThrow(f: () => B): (o: Option) => A; export declare function run(o: Option<(...args: A) => B>): (...args: A) => O.Option<(...args: A) => B>; export declare const bindM: >>(dependencies: D) => O.Option<{ readonly [K in keyof D]: D[K] extends O.Option ? O : any; }>;