import { Schedule } from "@effect/core/io/Schedule/definition";
import { Effect } from "@effect/core/io/Effect/definition";
import type { Decision } from "@effect/core/io/Schedule/Decision";
/**
 * Returns a new schedule that applies the current one but runs the specified
 * effect for every decision of this schedule. This can be used to create
 * schedules that log failures, decisions, or computed values.
 * @tsplus fluent ets/Schedule onDecision
 * @tsplus fluent ets/Schedule/WithState onDecision
 * @tsplus location "@effect/core/io/Schedule/operations/onDecision"
 */
export declare function onDecision_<State, Env, In, Out, Env1, X>(self: Schedule<State, Env, In, Out>, f: (state: State, out: Out, decision: Decision) => Effect<Env1, never, X>): Schedule<State, Env | Env1, In, Out>;
/**
 * Returns a new schedule that applies the current one but runs the specified
 * effect for every decision of this schedule. This can be used to create
 * schedules that log failures, decisions, or computed values.
 * @tsplus static ets/Schedule/Aspects onDecision
 * @tsplus pipeable ets/Schedule onDecision
 * @tsplus location "@effect/core/io/Schedule/operations/onDecision"
 */
export declare const onDecision: <State, Out, Env1, X>(f: (state: State, out: Out, decision: Decision) => import("../../Effect").Effect<Env1, never, X>) => <Env_1, In>(self: import("../definition").Schedule<State, Env_1, In, Out>) => import("../definition").Schedule<State, Env_1 | Env1, In, Out>;
//# sourceMappingURL=onDecision.d.ts.map