import { Env } from "@tsplus/stdlib/service/Env";
import { RuntimeConfig } from "@effect/core/io/RuntimeConfig/definition";
import { Effect } from "@effect/core/io/Effect/definition";
import { Exit } from "@effect/core/io/Exit/definition";
import { FiberId } from "@effect/core/io/FiberId/definition";
import { TraceElement } from "@effect/core/io/TraceElement/definition";
import { ImmutableMap } from "@tsplus/stdlib/collections/ImmutableMap/definition";
import { FiberRef } from "@effect/core/io/FiberRef/definition";
import { List } from "@tsplus/stdlib/collections/List/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
import { DefaultEnv } from "@effect/core/io/DefaultEnv/definition";
import { Stack } from "@tsplus/stdlib/data/Stack";
import { InterruptStatus } from "@effect/core/io/InterruptStatus/definition";
import { FiberScope } from "@effect/core/io/FiberScope/definition";
import { Supervisor } from "@effect/core/io/Supervisor/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { identity } from "@tsplus/stdlib/data/Function";
export declare class Runtime<R> {
    readonly environment: Env<R>;
    readonly runtimeConfig: RuntimeConfig;
    constructor(environment: Env<R>, runtimeConfig: RuntimeConfig);
    unsafeRunWith: <E, A>(effect: import("../Effect").Effect<R, E, A>, k: (exit: import("../Exit").Exit<E, A>) => void, __tsplusTrace?: string) => (fiberId: FiberId) => (_: (exit: import("../Exit").Exit<E, A>) => void) => void;
    /**
     * Executes the effect asynchronously, discarding the result of execution.
     *
     * This method is effectful and should only be invoked at the edges of your
     * program.
     */
    unsafeRunAsync: <E, A>(effect: import("../Effect").Effect<R, E, A>, __tsplusTrace?: string) => void;
    /**
     * Executes the effect asynchronously, eventually passing the exit value to
     * the specified callback.
     *
     * This method is effectful and should only be invoked at the edges of your
     * program.
     */
    unsafeRunAsyncWith: <E, A>(effect: import("../Effect").Effect<R, E, A>, k: (exit: import("../Exit").Exit<E, A>) => void, __tsplusTrace?: string) => void;
    /**
     * Runs the `Effect`, returning a JavaScript `Promise` that will be resolved
     * with the value of the effect once the effect has been executed, or will be
     * rejected with the first error or exception throw by the effect.
     *
     * This method is effectful and should only be used at the edges of your
     * program.
     */
    unsafeRunPromise: <E, A>(effect: import("../Effect").Effect<R, E, A>, __tsplusTrace?: string) => Promise<A>;
    /**
     * Runs the `Effect`, returning a JavaScript `Promise` that will be resolved
     * with the `Exit` state of the effect once the effect has been executed.
     *
     * This method is effectful and should only be used at the edges of your
     * program.
     */
    unsafeRunPromiseExit: <E, A>(effect: import("../Effect").Effect<R, E, A>, __tsplusTrace?: string) => Promise<import("../Exit").Exit<E, A>>;
}
//# sourceMappingURL=definition.d.ts.map