import { type Duration, Effect, type NonEmptyArray } from "effect-app"; import type { Semaphore } from "effect/Semaphore"; import type { Concurrency } from "effect/Types"; /** * Executes the specified effect, acquiring the specified number of permits * immediately before the effect begins execution and releasing them * delayed by duration after the effect completes execution, whether by success, * failure, or interruption. */ export declare function SEM_withPermitsDuration(permits: number, duration: Duration.Duration): (self: Semaphore) => (effect: Effect.Effect) => Effect.Effect; export interface BatchOptions { readonly concurrency?: Concurrency | undefined; } export declare const batch: { (n: number, forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect, forEachBatch: (a: NonEmptyArray, i: number) => Effect.Effect, options?: BatchOptions): (items: Iterable) => Effect.Effect, E | E2, R | R2>; (items: Iterable, n: number, forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect, forEachBatch: (a: NonEmptyArray, i: number) => Effect.Effect, options?: BatchOptions): Effect.Effect, E | E2, R | R2>; }; export declare function naiveRateLimit(n: number, d: Duration.Duration): (items: Iterable) => (forEachItem: (i: T) => Effect.Effect, forEachBatch: (a: A[]) => Effect.Effect) => Effect.Effect; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZUxpbWl0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmF0ZUxpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCQSxPQUFPLEVBQVMsS0FBSyxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUvQzs7Ozs7R0FLRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxVQUNwRSxTQUFTLEtBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FhOUY7QUFFRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsV0FBVyxHQUFHLFNBQVMsQ0FBQTtDQUMvQztBQUVELGVBQU8sTUFBTSxLQUFLLEVBQUU7SUFDbEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3JCLENBQUMsRUFBRSxNQUFNLEVBQ1QsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RixZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzRSxPQUFPLENBQUMsRUFBRSxZQUFZLEdBQ3JCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUNuRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDckIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDbEIsQ0FBQyxFQUFFLE1BQU0sRUFDVCxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNFLE9BQU8sQ0FBQyxFQUFFLFlBQVksR0FDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7Q0FrQjVDLENBQUE7QUFrQkQsd0JBQWdCLGNBQWMsQ0FDNUIsQ0FBQyxFQUFFLE1BQU0sRUFDVCxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsSUFFWixDQUFDLFNBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUN4QyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFDL0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyx5Q0FjdEQifQ==