import { type NevermoreOptions } from "."; /** Factory that constructs a nevermore strategy pipeline from provided options, * and returns a `createExecutor` function. Create a limited version of your * function like... * * ```typescript * import { createExecutorStrategy } from "@watchable/nevermore"; * * const { createExecutor } = createExecutorStrategy({ * concurrency: 1, * intervalMs: 100, * backoffMs: 1000, * timeoutMs: 3000, * retries: 3, * }) * * const limitedMyFn = createExecutor(myFn); * ``` * * Given your existing, typed async operation, `createExecutor` creates an * identically-typed operation that schedules its execution within the capacity * limits and behaviours of the pipeline. * * * For example... * * concurrency, rate-limits: executors will delay if other executors are * already using the capacity * * timeout : if the underlying operation takes too long, the executor will * throw a timeout error * * retry : the underlying operation is retried and the executor only throws * when retries are exhausted * * See documentation of {@link NevermoreOptions} for more on the available behaviours. */ export declare function createExecutorStrategy(options: NevermoreOptions): { createExecutor: (op: (...args: Args) => Promise) => (...args: Args) => Promise; }; //# sourceMappingURL=executor.d.ts.map