import { NodeDefinition, NodeLike, StatelessGraphNode, StatelessNodeDefinition, StatelessNodeType } from '../../types/graph'; /** * An instance of the [[eq]] node. * See the [[eq]] documentation to find out more. */ export interface EqNode extends StatelessGraphNode<'eq', EqNodeProperties> { } /** * A definition of the [[eq]] node. * See the [[eq]] documentation to find out more. */ export interface EqNodeDefinition extends StatelessNodeDefinition<'eq', EqNodeProperties> { } export interface EqNodeProperties { left: NodeDefinition; right: NodeDefinition; } /** * The implementation of the [[eq]] node. * See the [[eq]] documentation to learn more. */ export declare const EqNodeType: StatelessNodeType<'eq', EqNodeProperties>; /** * Creates a new instance of an [[eq]] node, which is used when comparing values of two other graph nodes. * It resolves to `value(true)` when the values are equal (using the strict equality operator) or to * `value(false)` when they're not equal. * * Both operands of the [[eq]] must resolve to a [[value]]. It will throw an error if either * one of them does not resolve to a [[value]]. * * * @example **Comparing values** * ```js * import muster, { computed, eq } from '@dws/muster'; * * const app = muster({}); * await app.resolve(eq(1, 1)) // === true * await app.resolve(eq(123, 321)) // === false * await app.resolve(eq('1', 1)) // === false * await app.resolve(eq('Hello world', 'Hello world')) // === true * await app.resolve(eq(computed([], () => 123), 123)) // === true * await app.resolve(eq('test 1', 'test 2')) //=== false * ``` */ export declare function eq(left: NodeDefinition | NodeLike, right: NodeDefinition | NodeLike): EqNodeDefinition; export declare function isEqNodeDefinition(value: NodeDefinition): value is EqNodeDefinition;