import { Effect } from "@effect/core/io/Effect/definition";
import { Env } from "@tsplus/stdlib/service/Env";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { Fiber } from "@effect/core/io/Fiber/definition";
import { Exit } from "@effect/core/io/Exit/definition";
/**
 * A `Supervisor<A>` is allowed to supervise the launching and termination of
 * fibers, producing some visible value of type `A` from the supervision.
 *
 * @tsplus type ets/Supervisor
 * @tsplus companion ets/Supervisor/Ops
 */
export declare class Supervisor<A> {
    /**
     * Returns an effect that succeeds with the value produced by this
     * supervisor. This value may change over time, reflecting what the
     * supervisor produces as it supervises fibers.
     */
    readonly value: Effect<never, never, A>;
    readonly unsafeOnStart: <R, E, A>(environment: Env<R>, effect: Effect<R, E, A>, parent: Maybe<Fiber.Runtime<any, any>>, fiber: Fiber.Runtime<E, A>) => void;
    readonly unsafeOnEnd: <E, A>(exit: Exit<E, A>, fiber: Fiber.Runtime<E, A>) => void;
    readonly unsafeOnEffect: <E, A>(fiber: Fiber.Runtime<E, A>, effect: Effect<any, any, any>) => void;
    readonly unsafeOnSuspend: <E, A>(fiber: Fiber.Runtime<E, A>) => void;
    readonly unsafeOnResume: <E, A>(fiber: Fiber.Runtime<E, A>) => void;
    constructor(
    /**
     * Returns an effect that succeeds with the value produced by this
     * supervisor. This value may change over time, reflecting what the
     * supervisor produces as it supervises fibers.
     */
    value: Effect<never, never, A>, unsafeOnStart: <R, E, A>(environment: Env<R>, effect: Effect<R, E, A>, parent: Maybe<Fiber.Runtime<any, any>>, fiber: Fiber.Runtime<E, A>) => void, unsafeOnEnd: <E, A>(exit: Exit<E, A>, fiber: Fiber.Runtime<E, A>) => void, unsafeOnEffect?: <E, A>(fiber: Fiber.Runtime<E, A>, effect: Effect<any, any, any>) => void, unsafeOnSuspend?: <E, A>(fiber: Fiber.Runtime<E, A>) => void, unsafeOnResume?: <E, A>(fiber: Fiber.Runtime<E, A>) => void);
}
//# sourceMappingURL=definition.d.ts.map