import type { MonadMin } from './Monad'; import * as HKT from './HKT'; import { Monad } from './Monad'; export interface MonadState extends Monad { readonly get: GetFn; readonly put: PutFn; readonly modify: ModifyFn; readonly gets: GetsFn; } export declare type MonadStateMin = MonadMin & { readonly get: GetFn; readonly put: PutFn; readonly modify: ModifyFn; readonly gets: GetsFn; }; export declare function MonadState(F: MonadStateMin): MonadState; export interface GetFn { , K = HKT.Initial, Q = HKT.Initial, W = HKT.Initial, X = HKT.Initial, I = HKT.Initial, R = HKT.Initial, E = HKT.Initial>(): HKT.Kind; } export interface PutFn { , K = HKT.Initial, Q = HKT.Initial, W = HKT.Initial, X = HKT.Initial, I = HKT.Initial, R = HKT.Initial, E = HKT.Initial>(s: S): HKT.Kind; } export interface GetsFn { , K = HKT.Initial, Q = HKT.Initial, W = HKT.Initial, X = HKT.Initial, I = HKT.Initial, R = HKT.Initial, E = HKT.Initial>(f: (s: S) => A): HKT.Kind; } export interface ModifyFn { , K = HKT.Initial, Q = HKT.Initial, W = HKT.Initial, X = HKT.Initial, I = HKT.Initial, R = HKT.Initial, E = HKT.Initial>(f: (s: S) => readonly [A, S]): HKT.Kind; } //# sourceMappingURL=MonadState.d.ts.map