/** * @since 0.1.0 */ import { Applicative2 } from 'fp-ts/es6/Applicative' import { Apply2 } from 'fp-ts/es6/Apply' import { Functor2 } from 'fp-ts/es6/Functor' import * as I from 'fp-ts/es6/IO' import { Monad2 } from 'fp-ts/es6/Monad' import { State } from 'fp-ts/es6/State' import IO = I.IO /** * @category model * @since 0.1.0 */ export interface StateIO { (s: S): IO<[A, S]> } /** * @category constructors * @since 0.1.0 */ export declare const get: () => StateIO /** * @category constructors * @since 0.1.0 */ export declare const put: (s: S) => StateIO /** * @category constructors * @since 0.1.0 */ export declare const modify: (f: (s: S) => S) => StateIO /** * @category constructors * @since 0.1.0 */ export declare const gets: (f: (s: S) => A) => StateIO /** * @category constructors * @since 0.1.0 */ export declare const fromIO: (ma: IO) => StateIO /** * @category constructors * @since 0.1.0 */ export declare const fromState: (ma: State) => StateIO /** * @category constructors * @since 0.1.10 */ export declare const fromIOK: , B>(f: (...a: A) => IO) => (...a: A) => StateIO /** * @category Functor * @since 0.1.18 */ export declare const map: (f: (a: A) => B) => (fa: StateIO) => StateIO /** * @category Apply * @since 0.1.18 */ export declare const ap: (fa: StateIO) => (fab: StateIO B>) => StateIO /** * @category Apply * @since 0.1.18 */ export declare const apFirst: (fb: StateIO) => (fa: StateIO) => StateIO /** * @category Apply * @since 0.1.18 */ export declare const apSecond: (fb: StateIO) => (fa: StateIO) => StateIO /** * @category Applicative * @since 0.1.18 */ export declare const of: (a: A) => StateIO /** * @category Monad * @since 0.1.18 */ export declare const chain: (f: (a: A) => StateIO) => (ma: StateIO) => StateIO /** * @category Monad * @since 0.1.18 */ export declare const chainFirst: (f: (a: A) => StateIO) => (ma: StateIO) => StateIO /** * @category Monad * @since 0.1.10 */ export declare const chainIOK: (f: (a: A) => I.IO) => (ma: StateIO) => StateIO /** * @category Monad * @since 0.1.18 */ export declare const flatten: (mma: StateIO>) => StateIO /** * @category instances * @since 0.1.0 */ export declare const URI = 'StateIO' /** * @category instances * @since 0.1.0 */ export declare type URI = typeof URI declare module 'fp-ts/es6/HKT' { interface URItoKind2 { StateIO: StateIO } } /** * @category instances * @since 0.1.18 */ export declare const Functor: Functor2 /** * @category instances * @since 0.1.18 */ export declare const Applicative: Applicative2 /** * @category instances * @since 0.1.18 */ export declare const Apply: Apply2 /** * @category instances * @since 0.1.18 */ export declare const Monad: Monad2 /** * @category instances * @since 0.1.0 */ export declare const stateIO: Monad2 /** * @since 0.1.0 */ export declare const evalState: (ma: StateIO, s: S) => IO /** * @since 0.1.0 */ export declare const execState: (ma: StateIO, s: S) => IO /** * @since 0.1.0 */ export declare const run: (ma: StateIO, s: S) => A