import { Equals } from "@tsplus/stdlib/structure/Equals"; import { Exit } from "@effect/core/io/Exit/definition"; import { Hash } from "@tsplus/stdlib/structure/Hash"; import { TExit } from "@effect/core/stm/TExit/definition"; export declare const STMStateSym: unique symbol; export type STMStateSym = typeof STMStateSym; /** * @tsplus type effect/core/stm/STM/State */ export type State = Done | Interrupted | Running; /** * @tsplus type effect/core/stm/STM/State.Ops */ export interface StateOps { } export declare const State: StateOps; /** * @tsplus unify effect/core/stm/STM/State/Done * @tsplus unify effect/core/stm/STM/State/Interrupted * @tsplus unify effect/core/stm/STM/State/Running */ export declare function unifyState>(self: X): State ? EX : never, X extends Done ? AX : never>; /** * @tsplus type effect/core/stm/STM/State/Done */ export declare class Done implements Equals { readonly exit: Exit; readonly _tag = "Done"; readonly [STMStateSym]: STMStateSym; constructor(exit: Exit); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; } /** * @tsplus type effect/core/stm/STM/State/Interrupted */ export declare class Interrupted implements Equals { readonly _tag = "Interrupted"; readonly [STMStateSym]: STMStateSym; [Hash.sym](): number; [Equals.sym](that: unknown): boolean; } /** * @tsplus type effect/core/stm/STM/State/Running */ export declare class Running implements Equals { readonly _tag = "Running"; readonly [STMStateSym]: STMStateSym; [Hash.sym](): number; [Equals.sym](that: unknown): boolean; } /** * @tsplus static effect/core/stm/STM/State/Ops isState * @tsplus location "@effect/core/stm/STM/State" */ export declare function isState(u: unknown): u is State; /** * @tsplus static effect/core/stm/STM/State.Ops done * @tsplus location "@effect/core/stm/STM/State" */ export declare function done(exit: TExit): State; /** * @tsplus static effect/core/stm/STM/State.Ops interrupted * @tsplus location "@effect/core/stm/STM/State" */ export declare const interrupted: State; /** * @tsplus static effect/core/stm/STM/State.Ops running * @tsplus location "@effect/core/stm/STM/State" */ export declare const running: State; /** * @tsplus getter effect/core/stm/STM/State isRunning * @tsplus location "@effect/core/stm/STM/State" */ export declare function isRunning(self: State): self is Running; //# sourceMappingURL=State.d.ts.map