[**@sebasoft/neuron-js**](../../README.md)

***

Defined in: [abstracts/AbstractCondition.ts:7](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractCondition.ts#L7)

Represents the base interface for all elements within the rules engine.
Elements are the building blocks of scripts, pulses, actions, conditions, and parameters.

## Extends

- [`AbstractElement`](AbstractElement.md)\<`TOptions`\>

## Type Parameters

### TOptions

`TOptions` *extends* [`ConditionOptions`](../../interfaces/Condition/interfaces/ConditionOptions.md) = [`ConditionOptions`](../../interfaces/Condition/interfaces/ConditionOptions.md)

The type of configuration options for this element.

## Constructors

### Constructor

> **new AbstractCondition**\<`TOptions`\>(`id`, `type`, `rawParams`, `options`, `neuron`): `AbstractCondition`\<`TOptions`\>

Defined in: [abstracts/AbstractCondition.ts:15](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractCondition.ts#L15)

#### Parameters

##### id

`string`

##### type

`string`

##### rawParams

[`ParameterInterface`](../../interfaces/Parameter/interfaces/ParameterInterface.md)\<`any`, `any`\>[]

##### options

`TOptions`

##### neuron

[`Neuron`](Neuron.md)

#### Returns

`AbstractCondition`\<`TOptions`\>

#### Overrides

[`AbstractElement`](AbstractElement.md).[`constructor`](AbstractElement.md#constructor)

## Properties

### id

> `readonly` **id**: `string`

Defined in: [abstracts/AbstractElement.ts:7](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractElement.ts#L7)

Unique identifier for the element instance.

#### Inherited from

[`AbstractElement`](AbstractElement.md).[`id`](AbstractElement.md#id)

***

### neuron

> `protected` `readonly` **neuron**: [`Neuron`](Neuron.md)

Defined in: [abstracts/AbstractCondition.ts:20](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractCondition.ts#L20)

***

### options

> `readonly` **options**: `TOptions`

Defined in: [abstracts/AbstractElement.ts:9](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractElement.ts#L9)

Configuration options specific to this element instance.

#### Inherited from

[`AbstractElement`](AbstractElement.md).[`options`](AbstractElement.md#options)

***

### params

> `readonly` **params**: `Map`\<`string`, \{ `getValue`: `unknown`; \}\>

Defined in: [abstracts/AbstractCondition.ts:10](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractCondition.ts#L10)

***

### rawParams

> `readonly` **rawParams**: [`ParameterInterface`](../../interfaces/Parameter/interfaces/ParameterInterface.md)\<`any`, `any`\>[]

Defined in: [abstracts/AbstractCondition.ts:18](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractCondition.ts#L18)

***

### type

> `readonly` **type**: `string`

Defined in: [abstracts/AbstractElement.ts:8](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractElement.ts#L8)

The registered type name of the element.
This type is used by the Registry (Neuron) to look up the correct implementation.

#### Inherited from

[`AbstractElement`](AbstractElement.md).[`type`](AbstractElement.md#type)

## Methods

### toJSON()

> **toJSON**(): `object`

Defined in: [abstracts/AbstractCondition.ts:26](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractCondition.ts#L26)

#### Returns

`object`

#### Overrides

[`AbstractElement`](AbstractElement.md).[`toJSON`](AbstractElement.md#tojson)
