> ## Documentation Index
> Fetch the complete documentation index at: https://ai.easyaf.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# PreToolUseSpecificOutput

> Represents the hook-specific output for a PreToolUse hook. Contains permission decisions and optional input modifications.

## Definition

**Assembly:** CloudNimble.ClaudeEssentials.dll

**Namespace:** CloudNimble.ClaudeEssentials.Hooks.Outputs

**Inheritance:** CloudNimble.ClaudeEssentials.Hooks.Outputs.HookSpecificOutputBase

## Syntax

```csharp theme={null}
CloudNimble.ClaudeEssentials.Hooks.Outputs.PreToolUseSpecificOutput<TToolInput>
```

## Summary

Represents the hook-specific output for a PreToolUse hook.
Contains permission decisions and optional input modifications.

## Type Parameters

* `TToolInput` - The type representing the tool's input parameters for updates.
  Use a specific tool input class or [Object](https://learn.microsoft.com/dotnet/api/system.object) for dynamic inputs.

## Constructors

### &#x20;.ctor

#### Syntax

```csharp theme={null}
public PreToolUseSpecificOutput()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Outputs.HookSpecificOutputBase`

#### Syntax

```csharp theme={null}
protected HookSpecificOutputBase()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public Object()
```

## Properties

### &#x20;HookEventName Override

Gets the hook event name for this output type.

#### Syntax

```csharp theme={null}
public override CloudNimble.ClaudeEssentials.Hooks.HookEventName HookEventName { get; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.HookEventName?`

### &#x20;HookEventName Inherited Abstract

> [!NOTE]
>
> Inherited from `CloudNimble.ClaudeEssentials.Hooks.Outputs.HookSpecificOutputBase`

Gets or sets the name of the hook event this output corresponds to.

#### Syntax

```csharp theme={null}
public abstract CloudNimble.ClaudeEssentials.Hooks.HookEventName HookEventName { get; }
```

#### Property Value

Type: `CloudNimble.ClaudeEssentials.Hooks.HookEventName`

### &#x20;PermissionDecision

Gets or sets the permission decision for the tool execution.

#### Syntax

```csharp theme={null}
public System.Nullable<CloudNimble.ClaudeEssentials.Hooks.PermissionDecision> PermissionDecision { get; set; }
```

#### Property Value

Type: `System.Nullable<CloudNimble.ClaudeEssentials.Hooks.PermissionDecision?>?`

### &#x20;PermissionDecisionReason

Gets or sets the reason for the permission decision.
This message is shown to Claude to explain why the tool was allowed, denied, or requires user input.

#### Syntax

```csharp theme={null}
public string PermissionDecisionReason { get; set; }
```

#### Property Value

Type: `string?`

### &#x20;UpdatedInput

Gets or sets optional modifications to the tool's input parameters.
Only the fields that need to be changed should be included.

#### Syntax

```csharp theme={null}
public TToolInput UpdatedInput { get; set; }
```

#### Property Value

Type: `TToolInput?`

## Methods

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual bool Equals(object obj)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `obj` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual string ToString()
```

#### Returns

Type: `string?`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.