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

# Interfaces

> Comprehensive reference for Unity AI Runtime interfaces, including their roles and usage scenarios.

## Audio

### IMicrophoneHandler

The Interface for the AudioCapture module.

Implemented by: [AudioCaptureModule](./InworldAudioModule/AudioCaptureModule)

### ICollectAudioHandler

The Interface for the Audio collector

Implemented by: [AudioCollectModule](./InworldAudioModule/AudioCollectModule)

### ICalibrateAudioHandler

The interface for the Audio calibrator.

Implemented by: PlayerVoiceDetector

### IPlayerAudioEventHandler

The Interface for handling player's command.

Implemented by: PlayerEventModule

### IProcessAudioHandler

The interface for the Audio Processor.

Not implemented by any Inworld classes for now. It's for the users to implement.

### ISendAudioHandler

The interface of the Audio Sender.

Implemented by: [AudioDispatchModule](./InworldAudioModule/AudioDispatchModule)

## BasicData

### IDataStreamStrategy

The Interface for the detailed object for the data stream.

Implemented by:

* BaseDataDataStreamStrategy
* ContentDataStreamStrategy
* SpeechChunkDataStreamStrategy
* StringDataStreamStrategy
* TTSOutputDataStreamStrategy

### IBaseDataVisitor

Component that implements the visitor pattern for processing different types of Inworld data.

Implemented by: InworldBaseDataVisitor

## Context

### IGetNodeHandler

Provides getter methods to retrieve node instances and runtime interfaces by component ID.

Implementations should resolve IDs to concrete graph nodes or service interfaces.

Implemented by:

* ComponentStore
* InworldCreationContext
* ProcessContext

### IAddInterfaceHandler

Provides methods to register runtime interfaces into the context by component ID.

Returns a boolean that indicates whether the registration succeeded.

* ComponentStore
* InworldGraph

## DataStructure

### IBTreeMapStrategy\<TKey, TValue>

Provides the inworld format data structure of BTMap that connects to inworld dll.

Implemented by: StringToStringBTreeMapStrategy

### IHashMapStrategy\<TKey, TValue>

Defines the interface for implementing HashMap strategies that bridge C# generic types to native C++ hash map implementations.

Provides a contract for creating, managing, and operating on native hash map data structures.

Implemented by:

* StringToHashSetStringHashMapStrategy
* StringToLoopHashMapStrategy
* StringToNodeHashMapStrategy
* StringToStringHashMapStrategy

### IHashSetStrategy\<T>

Defines the interface for implementing HashSet strategies that bridge C# generic types to native C++ hash set implementations.

Provides a contract for creating, managing, and operating on native hash set data structures.

Implemented by: StringHashSetStrategy

### IInputStreamStrategy\<T>

Defines the interface for implementing InputStream strategies that bridge C# generic types to native C++ stream implementations.

Provides a contract for managing and operating on native input stream data structures that deliver sequential data.

Implemented by:

* BaseDataInputStreamStrategy
* ContentInputStreamStrategy
* SpeechChunkInputStreamStrategy
* StringInputStreamStrategy
* TTSOutputInputStreamStrategy

### IMapStrategy\<TKey, TValue>

Defines the interface for implementing Map strategies that bridge C# generic types to native C++ map implementations.

Provides a contract for creating, managing, and operating on native ordered map data structures.

Maps maintain key-value pairs in sorted order based on the key comparison.

Implemented by: StringStringMapStrategy

### IVectorStrategy\<T>

Defines the interface for implementing Vector strategies that bridge C# generic types to native C++ vector implementations.

Provides a contract for creating, managing, and operating on native dynamic array data structures.

Vectors support random access, dynamic resizing, and efficient element insertion and retrieval.

Implemented by:

* BaseDataVectorStrategy
* CharVectorStrategy
* ChatMessageVectorStrategy
* CompiledIntentVectorStrategy
* CustomConfigWrapperVectorStrategy
* DetectedTopicVectorStrategy
* DeviceVectorStrategy
* DictionaryRuleVectorStrategy
* EdgeVectorStrategy
* EntityMatchVectorStrategy
* EntityVectorStrategy
* EventVectorStrategy
* Float2DVectorStrategy
* FloatVectorStrategy
* GoalVectorStrategy
* IntentMatchVectorStrategy
* InworldIntentVectorStrategy
* KeywordGroupVectorStrategy
* KeywordMatchVectorStrategy
* KnowledgeCollectionVectorStrategy
* KnowledgeRecordVectorStrategy
* LLMRoutingVectorStrategy
* MapStringVectorStrategy
* MessageVectorStrategy
* NodeVectorStrategy
* PhonemeStampVectorStrategy
* StatusCodeVectorStrategy
* StringVectorStrategy
* TelemetrySpanVectorStrategy
* TextVectorVectorStrategy
* ToolCallDataVectorStrategy
* ToolCallResultVectorStrategy
* ToolCallVectorStrategy
* ToolDataVectorStrategy
* ToolVectorStrategy
* TopicThreasholdVectorStrategy
