/**
* @since 0.24.0
*/
import type { TypeLambda } from "effect/HKT";
import type { Order } from "effect/Order";
import type { Monoid } from "./Monoid.js";
/**
* @category type class
* @since 0.24.0
*/
export interface Bounded {
readonly compare: Order;
readonly maxBound: A;
readonly minBound: A;
}
/**
* @category type lambdas
* @since 0.24.0
*/
export interface BoundedTypeLambda extends TypeLambda {
readonly type: Bounded;
}
/**
* `Monoid` that returns last minimum of elements.
*
* @category constructors
* @since 0.24.0
*/
export declare const min: (B: Bounded) => Monoid;
/**
* `Monoid` that returns last maximum of elements.
*
* @category constructors
* @since 0.24.0
*/
export declare const max: (B: Bounded) => Monoid;
/**
* Checks if a value is between the lower and upper limit of a bound.
*
* @category predicates
* @since 0.24.0
*/
export declare const between: (B: Bounded) => (a: A) => boolean;
/**
* Clamp a value between `minBound` and `maxBound` values.
*
* @category utils
* @since 0.24.0
*/
export declare const clamp: (B: Bounded) => (a: A) => A;
/**
* Reverses the `Order` of a `Bounded` and flips `maxBound` and `minBound` values.
*
* @category utils
* @since 0.24.0
*/
export declare const reverse: (B: Bounded) => Bounded;
//# sourceMappingURL=Bounded.d.ts.map