import { Semaphore } from "@effect/core/io/Semaphore/definition";
import { Effect } from "@effect/core/io/Effect/definition";
import { Scope } from "@effect/core/io/Scope/definition";
/**
 * Returns a scoped effect that describes acquiring the specified number of
 * permits and releasing them when the scope is closed.
 * @tsplus fluent ets/Semaphore withPermitsScoped
 * @tsplus location "@effect/core/io/Semaphore/operations/withPermitsScoped"
 */
export declare function withPermitsScoped_(self: Semaphore, permits: number, __tsplusTrace?: string): Effect<Scope, never, void>;
/**
 * Returns a scoped effect that describes acquiring the specified number of
 * permits and releasing them when the scope is closed.
 * @tsplus static ets/Semaphore/Aspects withPermitsScoped
 * @tsplus pipeable ets/Semaphore withPermitsScoped
 * @tsplus location "@effect/core/io/Semaphore/operations/withPermitsScoped"
 */
export declare const withPermitsScoped: (permits: number, __tsplusTrace?: string) => (self: Semaphore) => import("../../Effect").Effect<import("../../Scope").Scope, never, void>;
//# sourceMappingURL=withPermitsScoped.d.ts.map