import { Effect } from "@effect/core/io/Effect/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { FiberId } from "@effect/core/io/FiberId/definition";
/**
 * Imports an asynchronous effect into a pure `Effect` value, possibly returning
 * the value synchronously.
 *
 * If the register function returns a value synchronously, then the callback
 * function `Effect<R, E, A> => any` must not be called. Otherwise the callback
 * function must be called at most once.
 * @tsplus static ets/Effect/Ops asyncMaybe
 * @tsplus location "@effect/core/io/Effect/operations/asyncMaybe"
 */
export declare function asyncMaybe<R, E, A>(register: (callback: (_: Effect<R, E, A>) => void) => Maybe<Effect<R, E, A>>, __tsplusTrace?: string): Effect<R, E, A>;
/**
 * Imports an asynchronous effect into a pure `Effect` value, possibly returning
 * the value synchronously.
 *
 * If the register function returns a value synchronously, then the callback
 * function `Effect<R, E, A> => any` must not be called. Otherwise the callback
 * function must be called at most once.
 *
 * The list of fibers, that may complete the async callback, is used to
 * provide better diagnostics.
 * @tsplus static ets/Effect/Ops asyncMaybeBlockingOn
 * @tsplus location "@effect/core/io/Effect/operations/asyncMaybe"
 */
export declare function asyncMaybeBlockingOn<R, E, A>(register: (callback: (_: Effect<R, E, A>) => void) => Maybe<Effect<R, E, A>>, blockingOn: FiberId, __tsplusTrace?: string): Effect<R, E, A>;
//# sourceMappingURL=asyncMaybe.d.ts.map