import { Equals } from "@tsplus/stdlib/structure/Equals"; import { Hash } from "@tsplus/stdlib/structure/Hash"; import { Eval } from "@tsplus/stdlib/io/Eval/definition"; import { FiberId } from "@effect/core/io/FiberId/definition"; import { Stack } from "@tsplus/stdlib/data/Stack"; import { List } from "@tsplus/stdlib/collections/List/definition"; import { HashSet } from "@tsplus/stdlib/collections/HashSet/definition"; export declare const CauseSym: unique symbol; export type CauseSym = typeof CauseSym; export declare const _E: unique symbol; export type _E = typeof _E; /** * @tsplus type effect/core/io/Cause */ export interface Cause extends Equals { readonly [CauseSym]: CauseSym; readonly [_E]: () => E; } /** * @tsplus type effect/core/io/Cause.Ops */ export interface CauseOps { } export declare const Cause: CauseOps; /** * @tsplus type effect/core/io/Cause.Aspects */ export interface CauseAspects { } /** * @tsplus unify effect/core/io/Cause */ export declare function unifyCause>(self: X): Cause<[X] extends [{ [_E]: () => infer E; }] ? E : never>; export type RealCause = Empty | Fail | Die | Interrupt | Stackless | Then | Both; /** * @tsplus macro remove */ export declare function realCause(cause: Cause): asserts cause is RealCause; /** * @tsplus fluent effect/core/io/Cause isEmptyType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isEmptyType(cause: Cause): cause is Empty; /** * @tsplus fluent effect/core/io/Cause isDieType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isDieType(cause: Cause): cause is Die; /** * @tsplus fluent effect/core/io/Cause isFailType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isFailType(cause: Cause): cause is Fail; /** * @tsplus fluent effect/core/io/Cause isInterruptType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isInterruptType(cause: Cause): cause is Interrupt; /** * @tsplus fluent effect/core/io/Cause isStacklessType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isStacklessType(cause: Cause): cause is Stackless; /** * @tsplus fluent effect/core/io/Cause isThenType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isThenType(cause: Cause): cause is Then; /** * @tsplus fluent effect/core/io/Cause isBothType * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isBothType(cause: Cause): cause is Both; export declare class Empty implements Cause, Equals { readonly _tag = "Empty"; readonly [CauseSym]: CauseSym; readonly [_E]: () => never; [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; } export interface Fail extends Cause { } export declare class Fail implements Cause, Equals { readonly value: E; readonly _tag = "Fail"; readonly [CauseSym]: CauseSym; readonly [_E]: () => E; constructor(value: E); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; } export declare class Die implements Cause, Equals { readonly value: unknown; readonly _tag = "Die"; readonly [CauseSym]: CauseSym; readonly [_E]: () => never; constructor(value: unknown); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; } export declare class Interrupt implements Cause, Equals { readonly fiberId: FiberId; readonly _tag = "Interrupt"; readonly [CauseSym]: CauseSym; readonly [_E]: () => never; constructor(fiberId: FiberId); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; } export declare class Stackless implements Cause, Equals { readonly cause: Cause; readonly stackless: boolean; readonly _tag = "Stackless"; readonly [CauseSym]: CauseSym; readonly [_E]: () => E; constructor(cause: Cause, stackless: boolean); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; } export declare class Then implements Cause, Equals { readonly left: Cause; readonly right: Cause; readonly _tag = "Then"; readonly [CauseSym]: CauseSym; readonly [_E]: () => E; constructor(left: Cause, right: Cause); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; private eq; } export declare class Both implements Cause, Equals { readonly left: Cause; readonly right: Cause; readonly _tag = "Both"; readonly [CauseSym]: CauseSym; readonly [_E]: () => E; constructor(left: Cause, right: Cause); [Hash.sym](): number; [Equals.sym](that: unknown): boolean; __equalsSafe(that: Cause): Eval; private eq; } /** * @tsplus static effect/core/io/Cause.Ops empty * @tsplus location "@effect/core/io/Cause/definition" */ export declare const empty: Cause; /** * @tsplus static effect/core/io/Cause.Ops die * @tsplus location "@effect/core/io/Cause/definition" */ export declare function die(defect: unknown): Cause; /** * @tsplus static effect/core/io/Cause.Ops fail * @tsplus location "@effect/core/io/Cause/definition" */ export declare function fail(error: E): Cause; /** * @tsplus static effect/core/io/Cause.Ops interrupt * @tsplus location "@effect/core/io/Cause/definition" */ export declare function interrupt(fiberId: FiberId): Cause; /** * @tsplus static effect/core/io/Cause.Ops stack * @tsplus location "@effect/core/io/Cause/definition" */ export declare function stack(cause: Cause): Cause; /** * @tsplus static effect/core/io/Cause.Ops stackless * @tsplus location "@effect/core/io/Cause/definition" */ export declare function stackless(cause: Cause): Cause; /** * @tsplus operator effect/core/io/Cause + * @tsplus static effect/core/io/Cause.Ops then * @tsplus location "@effect/core/io/Cause/definition" */ export declare function combineSeq(left: Cause, right: Cause): Cause; /** * @tsplus operator effect/core/io/Cause & * @tsplus static effect/core/io/Cause.Ops both * @tsplus location "@effect/core/io/Cause/definition" */ export declare function combinePar(left: Cause, right: Cause): Cause; /** * Determines if the provided value is a `Cause`. * @tsplus fluent effect/core/io/Cause isCause * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isCause(self: unknown): self is Cause; /** * Determines if the `Cause` is empty. * @tsplus getter effect/core/io/Cause isEmpty * @tsplus location "@effect/core/io/Cause/definition" */ export declare function isEmpty(cause: Cause): boolean; //# sourceMappingURL=definition.d.ts.map