import { Maybe } from "@tsplus/stdlib/data/Maybe/definition"; /** * @tsplus type Result */ export type Result = Success | SuccessWithWarning | Failure; /** * @tsplus type ResultOps */ export interface ResultOps { } export declare const Result: ResultOps; export declare const _T: unique symbol; export type _T = typeof _T; /** * @tsplus type Result/Success */ export interface Success { readonly [_T]?: { _W: (_: never) => never; _E: (_: never) => never; _A: (_: never) => A; }; readonly _tag: "Success"; readonly success: A; } /** * @tsplus type Result/SuccessWithWarning */ export interface SuccessWithWarning { readonly [_T]?: { _W: (_: never) => W; _E: (_: never) => never; _A: (_: never) => A; }; readonly _tag: "SuccessWithWarning"; readonly success: A; readonly warning: W; } /** * @tsplus type Result/Failure */ export interface Failure { readonly [_T]?: { _W: (_: never) => never; _E: (_: never) => E; _A: (_: never) => never; }; readonly _tag: "Failure"; readonly failure: E; } /** * @tsplus unify Result/Success * @tsplus unify Result/SuccessWithWarning * @tsplus unify Result/Failure */ export declare function unifyResult>(self: X): Result<[ X ] extends [ { readonly [_T]?: { _W: (_: never) => infer W; _E: (_: never) => infer E; _A: (_: never) => infer A; }; } ] ? W : never, [ X ] extends [ { readonly [_T]?: { _W: (_: never) => infer W; _E: (_: never) => infer E; _A: (_: never) => infer A; }; } ] ? E : never, [ X ] extends [ { readonly [_T]?: { _W: (_: never) => infer W; _E: (_: never) => infer E; _A: (_: never) => infer A; }; } ] ? A : never>; /** * @tsplus fluent Result fold * @tsplus location "@tsplus/runtime/Result" */ export declare function fold(self: Result, onSuccess: (a: A, w: Maybe) => T0, onFailure: (e: E) => T1): T0 | T1; /** * @tsplus static ResultOps success * @tsplus location "@tsplus/runtime/Result" */ export declare function success(result: A): Result; export declare function success(result: A, warning: Maybe): Result; /** * @tsplus static ResultOps fail * @tsplus location "@tsplus/runtime/Result" */ export declare function fail(error: E): Result; /** * @tsplus static ResultOps successWithWarning * @tsplus location "@tsplus/runtime/Result" */ export declare function successWithWarning(result: A, warning: W): Result; /** * @tsplus fluent Result isSuccess * @tsplus location "@tsplus/runtime/Result" */ export declare function isSuccess(self: Result): self is Success; /** * @tsplus fluent Result isFailure * @tsplus location "@tsplus/runtime/Result" */ export declare function isFailure(self: Result): self is Failure; /** * @tsplus fluent Result isSuccessWihWarning * @tsplus location "@tsplus/runtime/Result" */ export declare function isSuccessWihWarning(self: Result): self is SuccessWithWarning; /** * @tsplus fluent Result getSuccess * @tsplus location "@tsplus/runtime/Result" */ export declare function getSuccess(self: Result): import("@tsplus/stdlib/data/Maybe").Maybe; /** * @tsplus fluent Result getFailure * @tsplus location "@tsplus/runtime/Result" */ export declare function getFailure(self: Result): import("@tsplus/stdlib/data/Maybe").Maybe; /** * @tsplus fluent Result getWarning * @tsplus location "@tsplus/runtime/Result" */ export declare function getWarning(self: Result): import("@tsplus/stdlib/data/Maybe").Maybe; /** * @tsplus fluent Result getWarningOrFailure * @tsplus location "@tsplus/runtime/Result" */ export declare function getWarningOrError(self: Result): import("@tsplus/stdlib/data/Maybe").Maybe>; /** * @tsplus fluent Result map * @tsplus location "@tsplus/runtime/Result" */ export declare function map_(self: Result, f: (a: A) => B): Result; //# sourceMappingURL=Result.d.ts.map