import { TSemaphore } from "@effect/core/stm/TSemaphore/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/TSemaphore withPermitsScoped
 * @tsplus location "@effect/core/stm/TSemaphore/operations/withPermitsScoped"
 */
export declare function withPermitsScoped_(self: TSemaphore, 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/TSemaphore/Aspects withPermitsScoped
 * @tsplus pipeable ets/TSemaphore withPermitsScoped
 * @tsplus location "@effect/core/stm/TSemaphore/operations/withPermitsScoped"
 */
export declare const withPermitsScoped: (permits: number, __tsplusTrace?: string) => (self: TSemaphore) => import("../../../io/Effect").Effect<import("../../../io/Scope").Scope, never, void>;
//# sourceMappingURL=withPermitsScoped.d.ts.map