import { Disposable } from '@most/types'; import * as Alt_ from 'fp-ts/Alt'; import * as FpApplicative from 'fp-ts/Applicative'; import * as Ap from 'fp-ts/Apply'; import * as FpChain from 'fp-ts/Chain'; import { ChainRec2 } from 'fp-ts/ChainRec'; import * as E from 'fp-ts/Either'; import * as FIO from 'fp-ts/FromIO'; import * as FR from 'fp-ts/FromReader'; import * as FT from 'fp-ts/FromTask'; import * as FN from 'fp-ts/function'; import { Functor2 } from 'fp-ts/Functor'; import * as IO from 'fp-ts/IO'; import { Monad2 } from 'fp-ts/Monad'; import { Pointed2 } from 'fp-ts/Pointed'; import * as Re from 'fp-ts/Reader'; import * as Task from 'fp-ts/Task'; import { FromResume2 } from './FromResume'; import { ArgsOf, Arity1 } from './function'; import { Intersect } from './HKT'; import { MonadRec2 } from './MonadRec'; import * as P from './Provide'; import * as R from './Resume'; /** * Env is specialization of Reader> * @since 0.9.2 * @category Model */ export interface Env extends Re.Reader> { } /** * @since 0.9.2 * @category Type-level */ export declare type RequirementsOf = [A] extends [Env] ? R : [A] extends [FN.FunctionN>] ? R : never; /** * @since 0.9.2 * @category Type-level */ export declare type ValueOf = A extends Env ? R : A extends FN.FunctionN> ? R : never; /** * @since 0.9.2 * @category Combinator */ export declare const ap: (fa: Env) => (fab: Env>) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apW: (fa: Env) => (fab: Env>) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chain: (f: (a: A) => Re.Reader>) => (ma: Re.Reader>) => Re.Reader>; /** * @since 0.9.2 * @category Combinator */ export declare const chainW: (f: (a: A) => Env) => (ma: Env) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromReader: (ma: Re.Reader) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const map: (f: (a: A) => B) => (fa: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const tap: (f: (a: A) => any) => (fa: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const constant: (a: A) => (fa: Env) => Env; /** * @since 0.9.2 * @category Model */ export declare type Of = Env; /** * @since 0.9.2 * @category Constructor */ export declare const of: (a: A) => Of; /** * @since 0.9.2 * @category Constructor */ export declare const asksIOK: (f: (r: R) => IO.IO) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const asksTaskK: (f: (r: R) => Task.Task) => Env; /** * @since 0.9.2 * @category Combinator */ export declare function chainRec Env>>(f: F): (value: ArgsOf[0]) => Env>, [ ValueOf> ] extends [E.Either] ? R : never>; /** * @since 0.9.2 * @category URI */ export declare const URI = "@typed/fp/Env"; /** * @since 0.9.2 * @category URI */ export declare type URI = typeof URI; declare module 'fp-ts/HKT' { interface URItoKind2 { [URI]: Env; } } declare module './HKT' { interface URItoVariance { [URI]: V; } } /** * @since 0.9.2 * @category Instance */ export declare const Pointed: Pointed2; /** * @since 0.9.2 * @category Instance */ export declare const Functor: Functor2; /** * @since 0.9.2 * @category Combinator */ export declare const flap: (a: A) => (fab: Env B>) => Env; /** * @since 0.9.2 * @category Instance */ export declare const Apply: Ap.Apply2; /** * @since 0.9.2 * @category Combinator */ export declare const apS: (name: Exclude, fb: Env) => (fa: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apSW: (name: Exclude, fb: Env) => (fa: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apT: (fb: Env) => (fas: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apTW: (fb: Env) => (fas: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apFirst: (second: Env) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apFirstW: (second: Env) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apSecond: (second: Env) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const apSecondW: (second: Env) => (first: Env) => Env; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getSemigroup: (S: import("fp-ts/Semigroup").Semigroup) => import("fp-ts/Semigroup").Semigroup>; /** * @since 0.9.2 * @category Instance */ export declare const Applicative: FpApplicative.Applicative2; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getMonoid: (M: import("fp-ts/Monoid").Monoid) => import("fp-ts/Monoid").Monoid>; /** * @since 0.9.2 * @category Instance */ export declare const Chain: FpChain.Chain2; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirst: (f: (a: A) => Env) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstW: (f: (a: A) => Env) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const flattenW: (env: Env>) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const flatten: (env: Env>) => Env; /** * @since 0.9.2 * @category Instance */ export declare const Monad: Monad2; /** * @since 0.9.2 * @category Instance */ export declare const ChainRec: ChainRec2; /** * @since 0.9.2 * @category Instance */ export declare const MonadRec: MonadRec2; /** * @since 0.9.2 * @category Instance */ export declare const FromReader: FR.FromReader2; /** * @since 0.9.2 * @category Combinator */ export declare const raceW: (a: Env) => (b: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const race: (a: Env) => (b: Env) => Env; /** * @since 0.9.2 * @category Instance */ export declare const Alt: Alt_.Alt2; /** * @since 0.9.2 * @category Combinator */ export declare const alt: (second: FN.Lazy>) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const altW: (snd: FN.Lazy>) => (fst: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const altAll: (startWith: Env) => (as: readonly Env[]) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromIO: (fa: IO.IO) => Env; /** * @since 0.9.2 * @category Instance */ export declare const FromIO: FIO.FromIO2; /** * @since 0.9.2 * @category Instance */ export declare const FromTask: FT.FromTask2; /** * @since 0.9.2 * @category Constructor */ export declare const fromTask: (fa: Task.Task) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromResume: (resume: R.Resume) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const FromResume: FromResume2; /** * @since 0.9.2 * @category Combinator */ export declare const useSome: (provided: E1) => (env: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const provideSome: (provided: E1) => (env: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const useAll: (provided: E1) => (env: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const provideAll: (provided: E1) => (env: Env) => Env; /** * @since 0.9.2 * @category Instance */ export declare const UseSome: P.UseSome2; /** * @since 0.9.2 * @category Instance */ export declare const UseAll: P.UseAll2; /** * @since 0.9.2 * @category Instance */ export declare const ProvideSome: P.ProvideSome2; /** * @since 0.9.2 * @category Instance */ export declare const ProvideAll: P.ProvideAll2; /** * @since 0.9.2 * @category Combinator */ export declare const provideAllWith: (provider: Env) => (hkt: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const useAllWith: (provider: Env) => (hkt: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const provideSomeWith: (provider: Env) => P.Provider2<"@typed/fp/Env", A, E1>; /** * @since 0.9.2 * @category Combinator */ export declare const useSomeWith: (provider: Env) => P.Provider2<"@typed/fp/Env", A, E1>; /** * @since 0.9.2 * @category Combinator */ export declare const askAndUse: (hkt: Env) => Env>; /** * @since 0.9.2 * @category Combinator */ export declare const askAndProvide: (hkt: Env) => Env>; /** * @since 0.9.2 * @category Combinator */ export declare const toResume: (hkt: Env) => Env>; /** * @since 0.9.2 * @category Instance */ export declare const Provide: P.Provide2; /** * @since 0.9.2 * @category Constructor */ export declare const Do: Env; /** * @since 0.9.2 * @category Combinator */ export declare const bindTo: (name: N) => (fa: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const bind: (name: Exclude, f: (a: A) => Env) => (ma: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const bindW: (name: Exclude, f: (a: A) => Env) => (ma: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const tupled: (fa: Env) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const ask: () => Env; /** * @since 0.9.2 * @category Constructor */ export declare const asks: (f: (r: R) => A) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const asksE: (f: (r: R) => Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainReaderK: (f: (a: A) => Re.Reader) => (ma: Env) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromReaderK: (f: (...a: A) => Re.Reader) => (...a: A) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstResumeK: (f: (value: A) => R.Resume) => (hkt: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainResumeK: (f: (value: A) => R.Resume) => (hkt: Env) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromResumeK: (f: (...args: A) => R.Resume) => (...args: A) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstTaskK: (f: (a: A) => Task.Task) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainTaskK: (f: (a: A) => Task.Task) => (first: Env) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromTaskK: (f: (...a: A) => Task.Task) => (...a: A) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstIOK: (f: (a: A) => IO.IO) => (first: Env) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const chainIOK: (f: (a: A) => IO.IO) => (first: Env) => Env; /** * @since 0.9.2 * @category Constructor */ export declare const fromIOK: (f: (...a: A) => IO.IO) => (...a: A) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const zip: (ta: readonly Env[]) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const zipW: []>(envs: A) => Env; }, unknown>, { [K_1 in keyof A]: ValueOf; }>; /** * @since 0.9.2 * @category Combinator */ export declare const combineAll: []>(...envs: A) => Env; }, unknown>, { [K_1 in keyof A]: ValueOf; }>; /** * @since 0.11.0 * @category Combinator */ export declare const combineStruct: >>>(props: Props) => Env; }>; /** * @since 0.9.2 * @category Execution */ export declare const runWith: (f: (value: A) => Disposable) => (requirements: E) => (env: Env) => Disposable; /** * @since 0.9.2 * @category Execution */ export declare const execWith: (requirements: E) => (env: Env) => Disposable; /** * Construct an Env to a lazily-defined Env-based effect that must be provided later. * Does not support functions which require type-parameters as they will resolve to unknown, due * to limitations in TS, if you need this maybe use [asksE](#askse) * @since 0.9.2 * @category Constructor */ export declare const op: Env>() => (key: K) => { (...args: ArgsOf): Env> & { readonly [_ in K]: F; }, ValueOf>>; readonly key: K; }; /** * @since 0.9.2 * @category Combinator */ export declare const toResumeK: (envK: (...args: Args) => Env) => Env R.Resume>; //# sourceMappingURL=Env.d.ts.map