import { TRef } from "@effect/core/stm/TRef/definition";
import type { TSemaphore } from "@effect/core/stm/TSemaphore/definition";
import { TSemaphoreSym } from "@effect/core/stm/TSemaphore/definition";
export declare class TSemaphoreInternal implements TSemaphore {
    readonly permits: TRef<number>;
    readonly [TSemaphoreSym]: TSemaphoreSym;
    constructor(permits: TRef<number>);
}
/**
 * @tsplus macro remove
 */
export declare function concreteTSemaphore(_: TSemaphore): asserts _ is TSemaphoreInternal;
//# sourceMappingURL=TSemaphoreInternal.d.ts.map