import { NodeDefinition, NodeLike, StatelessGraphNode, StatelessNodeDefinition, StatelessNodeType } from '../../types/graph'; /** * An instance of the [[not]] node. * See the [[not]] documentation to find out more. */ export interface NotNode extends StatelessGraphNode<'not', NotNodeProperties> { } /** * A definition of the [[not]] node. * See the [[not]] documentation to find out more. */ export interface NotNodeDefinition extends StatelessNodeDefinition<'not', NotNodeProperties> { } export interface NotNodeProperties { condition: NodeDefinition; } /** * The implementation of the [[not]] node. * See the [[not]] documentation to learn more. */ export declare const NotNodeType: StatelessNodeType<'not', NotNodeProperties>; /** * Creates a new instance of a [[not]] node, which is used when negating the value of a graph node. * This node expects the expression to resolve to a [[value]]. It throws an error if an * expression resolves to any other type. * * @example **Negating values** * ```js * import muster, { computed, not, value } from '@dws/muster'; * * const app = muster({}); * await app.resolve(not(false)) // === true * await app.resolve(not(true)) // === false * await app.resolve(not('hello world')) // === false * await app.resolve(not(123)) // === false * await app.resolve(not(value({ }))) // === false * await app.resolve(not(not(true))) // === true * await app.resolve(not(computed([], () => false))) // === true * await app.resolve(not(computed([], () => true))) // === false * ``` */ export declare function not(condition: NodeDefinition | NodeLike): NotNodeDefinition; export declare function isNotNodeDefinition(value: NodeDefinition): value is NotNodeDefinition;