import { NodeDefinition, NodeLike, StatelessGraphNode, StatelessNodeDefinition, StatelessNodeType } from '../../types/graph'; /** * An instance of the [[clamp]] node. * See the [[clamp]] documentation to find out more. */ export interface ClampNode extends StatelessGraphNode<'clamp', ClampNodeProperties> { } /** * A definition of a [[clamp]] node. * See the [[clamp]] documentation to find out more. */ export interface ClampNodeDefinition extends StatelessNodeDefinition<'clamp', ClampNodeProperties> { } export interface ClampNodeProperties { max: NodeDefinition; min: NodeDefinition; value: NodeDefinition; } /** * The implementation of the [[clamp]] node. * See the [[clamp]] documentation to learn more. */ export declare const ClampNodeType: StatelessNodeType<'clamp', ClampNodeProperties>; /** * Creates a new instance of a [[clamp]] node, which is a type of a [[NodeDefinition]] used when retrieving a value * that is clamped between minimum and maximum range. * @returns {ClampNodeDefinition} * * @example **Clamp the value** * ```js * import muster, { clamp, ref } from '@dws/muster'; * * const app = muster({ * ten: 10, * hundred: 100, * }); * * await app.resolve(clamp(31, { min: ref('ten'), max: ref('hundred') })); * // === 31 * * await app.resolve(clamp(9, { min: ref('ten'), max: ref('hundred') })); * // === 10 * * await app.resolve(clamp(101, { min: ref('ten'), max: ref('hundred') })); * // === 100 * ``` */ export declare function clamp(value: NodeLike, options: { min: NodeLike; max: NodeLike; }): ClampNodeDefinition; export declare function isClampNodeDefinition(value: NodeDefinition): value is ClampNodeDefinition;