import { Semaphore } from "@effect/core/io/Semaphore/definition";
import { Effect } from "@effect/core/io/Effect/definition";
/**
 * Executes the specified effect, acquiring the specified number of permits
 * immediately before the effect begins execution and releasing them
 * immediately after the effect completes execution, whether by success,
 * failure, or interruption.
 * @tsplus fluent ets/Semaphore withPermits
 * @tsplus location "@effect/core/io/Semaphore/operations/withPermits"
 */
export declare function withPermits_(self: Semaphore, permits: number, __tsplusTrace?: string): <R, E, A>(effect: import("../../Effect").Effect<R, E, A>) => import("../../Effect").Effect<R, E, A>;
/**
 * Executes the specified effect, acquiring the specified number of permits
 * immediately before the effect begins execution and releasing them
 * immediately after the effect completes execution, whether by success,
 * failure, or interruption.
 * @tsplus static ets/Semaphore/Aspects withPermits
 * @tsplus pipeable ets/Semaphore withPermits
 * @tsplus location "@effect/core/io/Semaphore/operations/withPermits"
 */
export declare const withPermits: (permits: number, __tsplusTrace?: string) => (self: Semaphore) => <R, E, A>(effect: import("../../Effect").Effect<R, E, A>) => import("../../Effect").Effect<R, E, A>;
//# sourceMappingURL=withPermits.d.ts.map