In order to maintain simplicity, PicoOPC reduces its model to just a handful of types.
The types listed in the table below are data objects. They do not perform any operations besides manipulating in-memory data. The data objects are all defined as immutable.
| Type Name | Description |
| AttributeId | Identifiers assigned to attributes. |
| BuiltInType | Enumeration of built-in types. |
| DataValue | The value and associated information. |
| NodeId | Unambiguously identifies a node. |
| NodeIdType | Type of the node ID identifier. |
| ReadValueId | Identifier for an item to read. |
| Variant | A union of all built-in data types. |
| WriteValue | Describes a node, and its attribute and value. |
There is one service object type, i.e. a type that allows the actual operations on the target system.
| Type Name | Description |
| Client | A minimalistic OPC UA client object. |
The actual representation of the types depends on the language binding.