import { FiberId } from "@effect/core/io/FiberId/definition";
import { RuntimeConfig } from "@effect/core/io/RuntimeConfig/definition";
import { RuntimeConfigFlag } from "@effect/core/io/RuntimeConfig/Flag";
import type { FiberContext } from "@effect/core/io/Fiber/_internal/context";
/**
 * A `FiberScope` represents the scope of a fiber lifetime. The scope of a
 * fiber can be retrieved using `Effect.descriptor`, and when forking fibers,
 * you can specify a custom scope to fork them on by using the `forkIn`.
 *
 * @tsplus type ets/FiberScope
 */
export declare type FiberScope = Global | Local;
/**
 * @tsplus type ets/FiberScope/Ops
 */
export interface FiberScopeOps {
}
export declare const FiberScope: FiberScopeOps;
export interface CommonScope {
    readonly fiberId: FiberId;
    readonly unsafeAdd: (runtimeConfig: RuntimeConfig, child: FiberContext<any, any>, __tsplusTrace?: string) => boolean;
}
export declare class Global implements CommonScope {
    readonly fiberId: import("../FiberId").FiberId;
    unsafeAdd(runtimeConfig: RuntimeConfig, child: FiberContext<any, any>, __tsplusTrace?: string | undefined): boolean;
}
export declare class Local implements CommonScope {
    readonly fiberId: FiberId;
    readonly parent: FiberContext<any, any>;
    constructor(fiberId: FiberId, parent: FiberContext<any, any>);
    unsafeAdd(_runtimeConfig: RuntimeConfig, child: FiberContext<any, any>, __tsplusTrace?: string | undefined): boolean;
}
/**
 * The global scope. Anything forked onto the global scope is not supervised,
 * and will only terminate on its own accord (never from interruption of a
 * parent fiber, because there is no parent fiber).
 * @tsplus static ets/FiberScope/Ops global
 * @tsplus location "@effect/core/io/FiberScope/definition"
 */
export declare const globalScope: import("@tsplus/stdlib/data/LazyValue").LazyValue<Global>;
/**
 * Unsafely creats a new `Scope` from a `Fiber`.
 * @tsplus static ets/FiberScope/Ops unsafeMake
 * @tsplus location "@effect/core/io/FiberScope/definition"
 */
export declare function unsafeMake(fiber: FiberContext<any, any>): FiberScope;
/**
 * @tsplus static ets/FiberScope/Ops _roots
 * @tsplus location "@effect/core/io/FiberScope/definition"
 */
export declare const _roots: import("@tsplus/stdlib/data/LazyValue").LazyValue<Set<FiberContext<any, any>>>;
//# sourceMappingURL=definition.d.ts.map