import type * as Tp from "../../Collections/Immutable/Tuple/index.js"; import type { Has, Tag } from "../../Has/index.js"; import * as T from "../index.js"; import * as L from "../Layer/index.js"; export interface State { readonly get: T.Effect; readonly set: (s: S) => T.Effect; readonly update: (f: (s: S) => S) => T.Effect; readonly modify: (f: (s: S) => Tp.Tuple<[A, S]>) => T.Effect; } export interface StateExternal { readonly Tag: Tag>; readonly get: T.Effect>, never, S>; readonly set: (s: S) => T.Effect>, never, void>; readonly update: (f: (s: S) => S) => T.Effect>, never, void>; readonly modify: (f: (s: S) => Tp.Tuple<[A, S]>) => T.Effect>, never, A>; readonly runState: (s: S) => (self: T.Effect> & R, E, A>) => T.Effect; readonly Live: (s: S) => L.Layer>>; } export declare function makeState(initial: S): T.Effect>; export declare function State(S: PropertyKey): StateExternal; //# sourceMappingURL=index.d.ts.map