import type * as Cause from "../Cause/core.js"; import type { Tuple } from "../Collections/Immutable/Tuple/index.js"; import type * as Exit from "../Exit/exit.js"; import type { FiberContext } from "../Fiber/context.js"; import type * as Fiber from "../Fiber/core.js"; import type { FiberID } from "../Fiber/id.js"; import type { Platform } from "../Fiber/index.js"; import type { Trace } from "../Fiber/tracing.js"; import type { Runtime } from "../FiberRef/fiberRef.js"; import type * as O from "../Option/index.js"; import type { Scope } from "../Scope/index.js"; import type { Supervisor } from "../Supervisor/index.js"; import type { XPureBase } from "../XPure/core.js"; import type { Effect } from "./effect.js"; import { Base } from "./effect.js"; export declare type Instruction = IFlatMap | ISucceed | IEffectPartial | IEffectTotal | IEffectAsync | IFold | IFork | IInterruptStatus | ICheckInterrupt | ICheckTracingStatus | IFail | IDescriptor | IYield | ITrace | IRead | IProvide | ISuspend | ISuspendPartial | IFiberRefNew | IFiberRefModify | IRaceWith | ISupervise | IGetForkScope | IOverrideForkScope | ITracingStatus | IPlatform | ITracer | XPureBase; export declare class IFail extends Base { readonly fill: (_: () => Trace) => Cause.Cause; readonly trace?: string | undefined; readonly _tag = "Fail"; constructor(fill: (_: () => Trace) => Cause.Cause, trace?: string | undefined); } export declare class IFlatMap extends Base { readonly val: Effect; readonly f: (a: A) => Effect; readonly trace?: string | undefined; readonly _tag = "FlatMap"; constructor(val: Effect, f: (a: A) => Effect, trace?: string | undefined); } export declare class ISucceed extends Base { readonly val: A; readonly trace?: string | undefined; readonly _tag = "Succeed"; constructor(val: A, trace?: string | undefined); } export declare class ITrace extends Base { readonly _tag = "Trace"; constructor(); } export declare class ITracingStatus extends Base { readonly effect: Effect; readonly flag: boolean; readonly _tag = "TracingStatus"; constructor(effect: Effect, flag: boolean); } export declare class ICheckTracingStatus extends Base { readonly f: (tracingStatus: boolean) => Effect; readonly _tag = "CheckTracingStatus"; constructor(f: (tracingStatus: boolean) => Effect); } export declare class IEffectPartial extends Base { readonly effect: () => A; readonly onThrow: (u: unknown) => E; readonly trace?: string | undefined; readonly _tag = "EffectPartial"; constructor(effect: () => A, onThrow: (u: unknown) => E, trace?: string | undefined); } export declare class IEffectTotal extends Base { readonly effect: () => A; readonly trace?: string | undefined; readonly _tag = "EffectTotal"; constructor(effect: () => A, trace?: string | undefined); } export declare class IEffectAsync extends Base { readonly register: (cb: (_: Effect) => void) => O.Option>; readonly blockingOn: readonly FiberID[]; readonly trace?: string | undefined; readonly _tag = "EffectAsync"; constructor(register: (cb: (_: Effect) => void) => O.Option>, blockingOn: readonly FiberID[], trace?: string | undefined); } export declare class IFold extends Base { readonly value: Effect; readonly failure: (cause: Cause.Cause) => Effect; readonly apply: (a: A) => Effect; readonly trace?: string | undefined; readonly _tag = "Fold"; constructor(value: Effect, failure: (cause: Cause.Cause) => Effect, apply: (a: A) => Effect, trace?: string | undefined); } export declare type FailureReporter = (e: Cause.Cause) => void; export declare class IFork extends Base> { readonly value: Effect; readonly scope: O.Option>>; readonly reportFailure: O.Option; readonly trace?: string | undefined; readonly _tag = "Fork"; constructor(value: Effect, scope: O.Option>>, reportFailure: O.Option, trace?: string | undefined); } export declare class IInterruptStatus extends Base { readonly effect: Effect; readonly flag: Fiber.InterruptStatus; readonly trace?: string | undefined; readonly _tag = "InterruptStatus"; constructor(effect: Effect, flag: Fiber.InterruptStatus, trace?: string | undefined); } export declare class ICheckInterrupt extends Base { readonly f: (_: Fiber.InterruptStatus) => Effect; readonly trace?: string | undefined; readonly _tag = "CheckInterrupt"; constructor(f: (_: Fiber.InterruptStatus) => Effect, trace?: string | undefined); } export declare class IDescriptor extends Base { readonly f: (_: Fiber.Descriptor) => Effect; readonly trace?: string | undefined; readonly _tag = "Descriptor"; constructor(f: (_: Fiber.Descriptor) => Effect, trace?: string | undefined); } export declare class IYield extends Base { readonly _tag = "Yield"; constructor(); } export declare class IRead extends Base { readonly f: (_: R0) => Effect; readonly trace?: string | undefined; readonly _tag = "Read"; constructor(f: (_: R0) => Effect, trace?: string | undefined); } export declare class IPlatform extends Base { readonly f: (_: Platform) => Effect; readonly trace?: string | undefined; readonly _tag = "Platform"; constructor(f: (_: Platform) => Effect, trace?: string | undefined); } export declare class ITracer extends Base { readonly f: (tracer: (trace?: string) => void) => Effect; readonly trace?: string | undefined; readonly _tag = "Tracer"; constructor(f: (tracer: (trace?: string) => void) => Effect, trace?: string | undefined); } export declare class IProvide extends Base { readonly r: R; readonly next: Effect; readonly trace?: string | undefined; readonly _tag = "Provide"; constructor(r: R, next: Effect, trace?: string | undefined); } export declare class ISuspend extends Base { readonly factory: (platform: Platform, id: FiberID) => Effect; readonly trace?: string | undefined; readonly _tag = "Suspend"; constructor(factory: (platform: Platform, id: FiberID) => Effect, trace?: string | undefined); } export declare class ISuspendPartial extends Base { readonly factory: (platform: Platform, id: FiberID) => Effect; readonly onThrow: (u: unknown) => E2; readonly trace?: string | undefined; readonly _tag = "SuspendPartial"; constructor(factory: (platform: Platform, id: FiberID) => Effect, onThrow: (u: unknown) => E2, trace?: string | undefined); } export declare class IFiberRefNew extends Base> { readonly initial: A; readonly onFork: (a: A) => A; readonly onJoin: (a: A, a2: A) => A; readonly _tag = "FiberRefNew"; constructor(initial: A, onFork: (a: A) => A, onJoin: (a: A, a2: A) => A); } export declare class IFiberRefModify extends Base { readonly fiberRef: Runtime; readonly f: (a: A) => Tuple<[B, A]>; readonly trace?: string | undefined; readonly _tag = "FiberRefModify"; constructor(fiberRef: Runtime, f: (a: A) => Tuple<[B, A]>, trace?: string | undefined); } export declare class IRaceWith extends Base { readonly left: Effect; readonly right: Effect; readonly leftWins: (exit: Exit.Exit, fiber: Fiber.Fiber) => Effect; readonly rightWins: (exit: Exit.Exit, fiber: Fiber.Fiber) => Effect; readonly scope: O.Option>>; readonly trace?: string | undefined; readonly _tag = "RaceWith"; constructor(left: Effect, right: Effect, leftWins: (exit: Exit.Exit, fiber: Fiber.Fiber) => Effect, rightWins: (exit: Exit.Exit, fiber: Fiber.Fiber) => Effect, scope: O.Option>>, trace?: string | undefined); } export declare class ISupervise extends Base { readonly effect: Effect; readonly supervisor: Supervisor; readonly trace?: string | undefined; readonly _tag = "Supervise"; constructor(effect: Effect, supervisor: Supervisor, trace?: string | undefined); } export declare class IGetForkScope extends Base { readonly f: (_: Scope>) => Effect; readonly trace?: string | undefined; readonly _tag = "GetForkScope"; constructor(f: (_: Scope>) => Effect, trace?: string | undefined); } export declare class IOverrideForkScope extends Base { readonly effect: Effect; readonly forkScope: O.Option>>; readonly trace?: string | undefined; readonly _tag = "OverrideForkScope"; constructor(effect: Effect, forkScope: O.Option>>, trace?: string | undefined); } export * from "./effect.js"; //# sourceMappingURL=primitives.d.ts.map