import type { DataSourceAspect } from '../DataSourceAspect'; import type { Described } from '../Described'; import type { BlockedRequests } from './BlockedRequests'; import type { Continue } from './Continue'; import type { Cause } from '@principia/base/IO/Cause'; import * as E from '@principia/base/Either'; export declare class Blocked { readonly blockedRequests: BlockedRequests; readonly cont: Continue; readonly _R: (_: R) => void; readonly _E: () => E; readonly _A: () => A; readonly _tag = "Blocked"; constructor(blockedRequests: BlockedRequests, cont: Continue); } export declare class Done { readonly value: A; readonly _R: (_: unknown) => void; readonly _E: () => never; readonly _A: () => A; readonly _tag = "Done"; constructor(value: A); } export declare class Fail { readonly cause: Cause; readonly _R: (_: unknown) => void; readonly _E: () => E; readonly _A: () => never; readonly _tag = "Fail"; constructor(cause: Cause); } export declare type Result = Blocked | Done | Fail; export declare function blocked(blockedRequests: BlockedRequests, cont: Continue): Result; export declare function failCause(cause: Cause): Result; export declare function done(value: A): Done; export declare function map_(fa: Result, f: (a: A) => B): Result; export declare function map(f: (a: A) => B): (fa: Result) => Result; export declare function mapDataSources_(fa: Result, f: DataSourceAspect): Result; export declare function mapDataSources(f: DataSourceAspect): (fa: Result) => Result; export declare function fromEither(either: E.Either): Result; export declare function gives_(ra: Result, f: Described<(r0: R0) => R>): Result; export declare function gives(f: Described<(r0: R0) => R>): (ra: Result) => Result; //# sourceMappingURL=Result.d.ts.map