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

***

Defined in: [plugins/rules/SimpleRule.ts:6](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/plugins/rules/SimpleRule.ts#L6)

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

## Extends

- [`AbstractRule`](AbstractRule.md)

## Constructors

### Constructor

> **new SimpleRule**(`id`, `type`, `conditions`, `actions`, `options`): `SimpleRule`

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

#### Parameters

##### id

`string`

##### type

`string`

##### conditions

[`ConditionInterface`](../../interfaces/Condition/interfaces/ConditionInterface.md)\<[`ConditionOptions`](../../interfaces/Condition/interfaces/ConditionOptions.md)\>[]

##### actions

[`ActionInterface`](../../interfaces/Action/interfaces/ActionInterface.md)\<[`ActionOptions`](../../interfaces/Action/interfaces/ActionOptions.md)\>[]

##### options

[`RuleOptions`](../../interfaces/Rule/interfaces/RuleOptions.md)

#### Returns

`SimpleRule`

#### Inherited from

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

## Properties

### actions

> `readonly` **actions**: [`ActionInterface`](../../interfaces/Action/interfaces/ActionInterface.md)\<[`ActionOptions`](../../interfaces/Action/interfaces/ActionOptions.md)\>[]

Defined in: [abstracts/AbstractRule.ts:11](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/abstracts/AbstractRule.ts#L11)

#### Inherited from

[`AbstractRule`](AbstractRule.md).[`actions`](AbstractRule.md#actions)

***

### conditions

> `readonly` **conditions**: [`ConditionInterface`](../../interfaces/Condition/interfaces/ConditionInterface.md)\<[`ConditionOptions`](../../interfaces/Condition/interfaces/ConditionOptions.md)\>[]

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

#### Inherited from

[`AbstractRule`](AbstractRule.md).[`conditions`](AbstractRule.md#conditions)

***

### 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

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

***

### options

> `readonly` **options**: [`RuleOptions`](../../interfaces/Rule/interfaces/RuleOptions.md)

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

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

***

### 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

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

***

### TYPE

> `readonly` `static` **TYPE**: `"simple_rule"` = `"simple_rule"`

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

## Methods

### execute()

> **execute**(`context`): [`ExecutionResult`](../../types/ExecutionResult/classes/ExecutionResult.md)\<`void`\>

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

#### Parameters

##### context

[`ExecutionContext`](../../types/ExecutionContext/interfaces/ExecutionContext.md)

#### Returns

[`ExecutionResult`](../../types/ExecutionResult/classes/ExecutionResult.md)\<`void`\>

***

### toJSON()

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

Defined in: [plugins/rules/SimpleRule.ts:13](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/plugins/rules/SimpleRule.ts#L13)

#### Returns

`object`

#### Overrides

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

***

### fromJSON()

> `static` **fromJSON**(`jsonObject`): `SimpleRule`

Defined in: [plugins/rules/SimpleRule.ts:23](https://github.com/SebaSOFT/neuron-js/blob/aff482a5bc89c6f9dff62f832acdd1bd10d3a175/src/plugins/rules/SimpleRule.ts#L23)

#### Parameters

##### jsonObject

[`RuleInterface`](../../interfaces/Rule/interfaces/RuleInterface.md)

#### Returns

`SimpleRule`
