[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › Type

Runtime validation with precise TypeScript types and structured errors.

Evolu [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) is a pure, synchronous codec for defining semantic domains.
It partially decodes an `Input` into an `Output` and totally encodes every
valid `Output` into a `CanonicalInput`. Types can validate, refine,
transform, and compose without losing the contracts TypeScript can express.

Decoding failures are explicit [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result) values, and their structured
errors preserve the exact error types each Type can return.

Evolu Type is designed to make correct code the easiest code to write:

- Predefined constraints add a [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) to their Output.
- Invalid declarations produce readable [CompileTimeError](https://evolu.dev/docs/api-reference/common/Types/type-aliases/CompileTimeError) types when the
  compiler can detect them.
- Evolu Type uses runtime [assertions](https://evolu.dev/docs/api-reference/common/Assert/variables/assert) to detect developer errors
  that TypeScript cannot express, such as excess properties and sparse
  arrays.
- Typed `from` boundaries allow connecting value producers to domain fields
  through their exact TypeScript types, so incompatible contract changes are
  compile-time errors rather than runtime validation errors.
- Lawful codecs compose without creating unencodable values: every valid Output
  has a canonical Input representation and round-trips to the same semantic
  value.
- Type-safe localization infers the required error formatters from selected
  Types, so missing validation messages are compile-time errors.

Correctness is especially important for local-first data: application authors
cannot inspect or repair a user's data.

Evolu Type is optimized for small real-world bundles: composed Types share
runtime code, while unused validators and formatters are tree-shaken. It
could be smaller with less descriptive assertion messages, but Evolu favors
actionable diagnostics over micro-optimizing isolated Types.

Predefined Types use the names of corresponding JavaScript built-ins. When a
Type shadows one, access the JavaScript built-in through `globalThis`, such
as `globalThis.String` or `globalThis.Date`.

Evolu Type supports [Standard Schema](https://standardschema.dev/) and
requires TypeScript 7+ with `exactOptionalPropertyTypes` enabled.

## Examples

Define a domain object with a custom `Age` Type, then validate unknown input:

```ts
import {
  assertEqual,
  Data,
  assertErr,
  assertOk,
  assertType,
  Number,
  NonEmptyTrimmedString100,
  brand,
  finite,
  int,
  lessThan,
  nonNaN,
  nonNegative,
  object,
  type Brand,
  type InferErrors,
  type InferType,
} from "@evolu/common";

// Age and its parent Types are predefined by Evolu. They are reconstructed
// here to reveal every constraint behind a seemingly simple domain value.
const NonNaNNumber = nonNaN(Number);
const FiniteNumber = finite(NonNaNNumber);
const Int = int(FiniteNumber);
const NonNegativeInt = nonNegative(Int);

const Age = brand("Age", lessThan(200)(NonNegativeInt));
type Age = typeof Age.Output;

assertType<
  number &
    Brand<"NonNaN"> &
    Brand<"Finite"> &
    Brand<"Int"> &
    Brand<"NonNegative"> &
    Brand<"LessThan200"> &
    Brand<"Age">,
  Age
>();

const User = object({
  name: NonEmptyTrimmedString100,
  age: Age,
});
interface User extends InferType<typeof User> {}

const value: unknown = { name: "Ada", age: 37 };
const user = User.fromUnknown(value);

assertOk(user, { name: "Ada", age: 37 });
assertType<typeof User.Output, typeof user.value>();

const invalidUser = User.fromUnknown({ name: "Ada", age: 37.5 });

assertErr(invalidUser);
// InferErrors includes every structured error User.fromUnknown can return.
assertType<InferErrors<typeof User>, typeof invalidUser.error>();
assertType(Data, invalidUser.error);
assertEqual(invalidUser.error, {
  type: "Object",
  reason: {
    kind: "Properties",
    errors: {
      age: { type: "Int", value: 37.5 },
    },
  },
});
```

A Type can format its structured errors into user-facing messages:

```ts

const age = Age.fromUnknown(37.5);

assertErr(age);
assertType(Data, age.error);
assertEqual(age.error, { type: "Int", value: 37.5 });
assertEqual(
  Age.formatError(age.error),
  "The value 37.5 must be a safe integer.",
);
```

Use [localizeTypes](https://evolu.dev/docs/api-reference/common/Type/variables/localizeTypes) to derive Types with localized messages without
changing validation behavior.

One of Evolu Type's strongest features is typed `from` boundaries. A value
producer, such as a form input, carries the precise constraints it
guarantees, and TypeScript checks them against the consuming domain field.
Unlike validation from `unknown` or `string`, this checks the contract
between the producer and consumer, not merely whether the current value
passes:

```ts
import {
  assertOk,
  assertType,
  NonEmptyTrimmedString100,
  NonEmptyTrimmedString1000,
  object,
  trim,
  type MaxLengthError,
  type MinLengthError,
  type Result,
  type TrimmedString,
} from "@evolu/common";

const Todo = object({ title: NonEmptyTrimmedString100 });

// This is type-checked: Todo.from expects NonEmptyTrimmedString100.
const title = NonEmptyTrimmedString100.orThrow("Buy milk");
assertOk(Todo.from({ title }), { title });

// Imagine the UI input component is changed to allow longer titles.
// TypeScript rejects the mismatch, so users never see a save error
// for a title the UI accepts but the domain cannot save.
const longerTitle = NonEmptyTrimmedString1000.orThrow("Buy milk");
// @ts-expect-error MaxLength1000 does not guarantee MaxLength100.
Todo.from({ title: longerTitle });

// Imagine a UI input component that returns TrimmedString.
// from.parent.parent connects it to the domain field and validates the
// remaining constraints.
const titleFromTrimmingInput: TrimmedString = trim("  Buy milk  ");
const validatedTitle = Todo.props.title.from.parent.parent(
  titleFromTrimmingInput,
);

// No "not a string" or "not trimmed" errors: the input guarantees both.
assertType<
  Result<NonEmptyTrimmedString100, MaxLengthError<100> | MinLengthError<1>>,
  typeof validatedTitle
>();
assertOk(validatedTitle, "Buy milk");
```

Evolu includes dozens of predefined Types and Type factories. Use Types such
as [Age](https://evolu.dev/docs/api-reference/common/Type/variables/Age), [PositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveInt), [DateIso](https://evolu.dev/docs/api-reference/common/Type/variables/DateIso),
[NonEmptyTrimmedString100](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString100), [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url), and [Json](https://evolu.dev/docs/api-reference/common/Type/variables/Json) directly.
Build domain Types with factories such as [brand](https://evolu.dev/docs/api-reference/common/Type/functions/brand), [typed](https://evolu.dev/docs/api-reference/common/Type/functions/typed),
[minLength](https://evolu.dev/docs/api-reference/common/Type/functions/minLength), [maxLength](https://evolu.dev/docs/api-reference/common/Type/functions/maxLength), [array](https://evolu.dev/docs/api-reference/common/Type/functions/array), [object](https://evolu.dev/docs/api-reference/common/Type/functions/object),
[union](https://evolu.dev/docs/api-reference/common/Type/functions/union), [templateLiteral](https://evolu.dev/docs/api-reference/common/Type/functions/templateLiteral), [transform](https://evolu.dev/docs/api-reference/common/Type/functions/transform),
[discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion), and [json](https://evolu.dev/docs/api-reference/common/Type/functions/json).

## Guarantees

Evolu Type validates values; it does not defend against adversarial
JavaScript such as malicious Proxies, mutation during validation, throwing
traps, forged built-ins, or code deliberately bypassing TypeScript with `any`
or casts.

Evolu Type trusts application code and audited dependencies. Untrusted code
can cause harm far beyond validation and must not run in the application.
Defending against it would add complexity without creating a meaningful
security boundary.

Runtime assertions still detect accidental developer errors that TypeScript
cannot express. They are correctness checks, not defenses against malicious
code.

Evolu does not support subclassing native JavaScript objects. Such subclasses
can be classified as their reported built-in representation, but their
behavior is unspecified.

## FAQ

### What does a Type represent?

A Type is a lawful, pure codec for an exact semantic domain:

```text
Input           ── partial decode ──▶ Output
CanonicalInput  ◀─── total encode ─── Output

CanonicalInput ⊆ Input
```

Read each line in the direction of its arrowhead. `Input` is the complete
typed decoding boundary, including candidates that validation can reject and
noncanonical representations that decoding can normalize. `Output` is the
validated semantic value. `CanonicalInput` is the statically known subtype of
`Input` returned by the complete `to` operation. It can be wider than the
values actually emitted when a refinement follows an arbitrary transformation
because TypeScript cannot determine which values its encoder returns for the
narrowed Output. `fromUnknown` and the `from` operations decode; `to`
encodes.

A lawful Type round-trips every Output:

```text
fromUnknown(to(output)) ≈ ok(output)
```

Encoding can canonicalize a valid Input:

```text
"0042" ──decode──▶ 42 ──encode──▶ "42"
```

Once canonicalized, repeating the decode-encode cycle must preserve that
representation:

```text
"42" ──decode──▶ 42 ──encode──▶ "42"
```

Here `decode` means running the complete decoding pipeline, as `fromUnknown`
does, and `≈` means equality appropriate for the semantic domain. Validation
refinements, [Array Types](https://evolu.dev/docs/api-reference/common/Type/interfaces/ArrayType), and
[Object Types](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ObjectType) preserve these laws when their contained
Types do. A [union](https://evolu.dev/docs/api-reference/common/Type/functions/union) additionally requires compatible dispatch: it
encodes through the first member matching the Output and decodes through the
first member accepting the Input. Member ordering is lawful only when those
choices agree semantically. Encoded representations can overlap even when
member Output types are disjoint.

When encoding returns a refined value unchanged, the refinement can narrow
`CanonicalInput` without changing its JavaScript representation. For example,
[FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber) has `number` as its Input, while its Output and
CanonicalInput are `FiniteNumber`: decoding can reject non-finite number
candidates, and encoding only receives validated finite Outputs. A
transformation can change the representation entirely. For
[Int64FromInt64String](https://evolu.dev/docs/api-reference/common/Type/variables/Int64FromInt64String), Input is `string`, Output is `Int64`, and
CanonicalInput is `Int64String`. Structural Type factories derive their
CanonicalInput recursively from their contained Types.

### Why is to total?

Suppose a Type accepts only strings containing decimal digits and decodes
them to JavaScript numbers. Parsing `"42"` is possible, but the Type cannot
lawfully declare its Output as `number`:

```text
digits-only string ──partial decode──▶ number
digits-only string ◀─── total encode ── number  // impossible
```

`number` also contains negative and fractional numbers, `NaN`, positive and
negative infinity, and `-0`. None of those values has a digits-only
representation, so `to` could not encode every valid Output.

One lawful design narrows the Output to the exact representable domain:

```text
digits-only string ──partial decode──▶ NonNegativeSafeInteger
digits-only string ◀─── total encode ── NonNegativeSafeInteger

"0042" ──decode──▶ 42 ──encode──▶ "42"
```

Another lawful design keeps `number` as the Output but expands the Input
representation to include a canonical string for every number, including
`"NaN"`, `"Infinity"`, `"-Infinity"`, and `"-0"`, as well as negative and
fractional numbers.

The same principle applies when converting between two representations. Give
each representation its own Type with the same exact Output. For example, a
string representation and a number representation can both decode to the
shared `SafeInteger` domain:

```text
string ──partial decode──▶ SafeInteger
string ◀─── total encode ── SafeInteger

number ──partial decode──▶ SafeInteger
number ◀─── total encode ── SafeInteger
```

Conversion decodes the source representation, then total-encodes the shared
Output into the target representation. If no lossless shared domain exists,
the operation is a partial conversion, migration, or policy decision and
should be an explicit function returning Result, not a Type transformation.

### Why can a typed operation throw?

TypeScript proves structural assignability, but it cannot describe every
runtime invariant. For example, it cannot express whether an object property
is own, enumerable, or a data property. It also permits a wider object with
excess properties where a narrower object type is expected.

`fromUnknown` treats such invalid external values as input data and returns a
typed error. Typed boundaries instead assert the domain promised by their
parameter type. If application code claims an accessor-backed object or an
object with excess properties is an Object Output, the assertion throws
because the application contract is broken. `orThrow` and `orNull` preserve
the assertion at their typed `Input` boundary, then apply [getOrThrow](https://evolu.dev/docs/api-reference/common/Result/functions/getOrThrow)
or [getOrNull](https://evolu.dev/docs/api-reference/common/Result/functions/getOrNull) only to validation failures returned by the remaining
pipeline.

Consequently, structural representation errors such as sparse Arrays,
accessors, and excess properties normally do not enter user-facing validation
in typed application flows. They violate the producer's declared contract and
throw as developer errors. At a genuinely unknown boundary, such as a
schema-authoring tool, import, or external protocol, the same issues are
legitimate typed validation errors and their formatter messages are useful.

This distinction applies to data failures. Any Type operation, including
`fromUnknown`, can throw when trusted Type-declaration code, such as a
successful transformation callback, violates its declared contract.

Materialize accessor values into plain data, remove properties the Type does
not represent, or use a different Type. Silently discarding excess data would
make the code constructing it dead while appearing to encode it successfully.
One exact Object policy also keeps Output membership independent of parsing
configuration. Exact structural policies also keep Output membership
independent of whether a transformation happens to allocate a new value.
Evolu Type therefore does not invoke accessors, discard excess properties, or
make `to` fallible. This keeps `to` total for every legitimate Output and
lets transformations compose without an encoding-error channel.

### How should values from another realm be handled?

Values returned by legacy code or another realm can still be uncertain and
should be validated. Realm-neutral Types accept an otherwise legitimate
representation without requiring conversion merely because its JavaScript
built-ins belong to another realm.

When an application trusts both the producer and its return contract, expose
that contract as an accurate TypeScript type and use the typed value
directly. If the boundary returns `unknown`, validate it instead of bypassing
the boundary with a cast. Use a specialized Type or explicit transformation
when the producer uses a different representation that needs adaptation or
normalization.

### Why doesn't Evolu Type extract data from rich objects?

Some validation libraries parse an object's data projection. An imaginary
validation library can enumerate own enumerable string properties and decode
them into a fresh plain object. That lets a class instance decode as plain
data while its prototype and methods are ignored. The same general policy can
treat a `Date` or `Map` as an empty Record and can invoke enumerable getters.
This is a coherent but intentionally forgiving normalization model.

Evolu Type validates exactly the runtime representation defined by each Type;
it does not implicitly project one representation into another. The
predefined [Object](https://evolu.dev/docs/api-reference/common/Type/variables/Object) defines an open plain-object representation with
unknown values, [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) defines a closed plain-object representation,
and [record](https://evolu.dev/docs/api-reference/common/Type/functions/record) defines a plain-dictionary representation whose complete
set of own properties are its entries. Their realm-neutral plain-object rule
uses [isPlainObject](https://evolu.dev/docs/api-reference/common/Object/functions/isPlainObject): it accepts a `null` prototype or an immediate root
prototype with own `hasOwnProperty` and `isPrototypeOf` properties. A custom
root prototype with the same shape can therefore be classified as plain;
other custom prototypes and class instances are rejected. This heuristic
assumes trusted JavaScript and is not a security boundary. Every property
must be an enumerable data property; inherited members are not entries, while
accessors and hidden properties are invalid instead of being invoked or
ignored. [array](https://evolu.dev/docs/api-reference/common/Type/functions/array) similarly defines a dense sequence whose only own
properties are `length` and its indexed data properties; [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple) applies
the same representation rules with a fixed length and a distinct Type for
each position. Only an explicit [transform](https://evolu.dev/docs/api-reference/common/Type/functions/transform) changes the representation.
Consequently, `is` tests exact Output membership and `to` stays total for
valid Outputs.

### Why is JsonValue stricter than JSON.stringify?

`JSON.stringify` is a forgiving data projection. It can invoke `toJSON` and
accessors, discard object properties, replace unsupported array elements and
non-finite numbers with `null`, and normalize `-0` to `0`. Those rules are
useful for ordinary serialization, but they do not preserve an exact value.

[JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) instead defines data that is already represented as data.
Invalid runtime behavior and values are rejected rather than interpreted or
silently discarded. Its encoder is total and stack-safe for every valid
Output, and [JsonValueFromJson](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValueFromJson) preserves the semantic value when it is
encoded and decoded, including JavaScript's distinction between `-0` and `0`.
Use an explicit transformation before this boundary when a projection or
other normalization is desired.

### Why are Types pure and synchronous?

A Type describes data meaning, not work. Time, I/O, dependencies, external
state, authorization, and other contextual decisions belong in a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task).
Use a Type to decode the data required by that work, then pass the decoded
value to a Task. A pure synchronous conversion that can fail can be an
ordinary function returning Result.

Keeping those responsibilities separate prevents Evolu Type from becoming a
hidden application workflow. It also keeps validation deterministic,
dependency-free, immediately composable, and straightforward to test.

### What if only decoding is needed?

Use `fromUnknown` for unknown data. For typed application data, call `from`
at the boundary its input type proves, or use `orThrow` or `orNull` for a
flat conversion from `Input`. The canonical `to` encoder still keeps the Type
lawful and composable with transformations and structural Types. A genuinely
irreversible operation is a separate function or Task, not a Type
transformation.

## Core

| Name                                                                                      | Description                                                                                                                                      |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| [AnyType](https://evolu.dev/docs/api-reference/common/Type/interfaces/AnyType)                         | Any concrete [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type), regardless of its particular type parameters.                          |
| [EvoluTypeError](https://evolu.dev/docs/api-reference/common/Type/interfaces/EvoluTypeError)           | Error returned when [EvoluType](https://evolu.dev/docs/api-reference/common/Type/variables/EvoluType) rejects a value.                                        |
| [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type)                               | A runtime representation of a TypeScript type, including its encoded input, semantic output, structured errors, and canonical encoding.          |
| [TypeError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeError)                     | A plain structured error produced by a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) operation.                                    |
| [TypeNode](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeNode)                       | The common structural shape of every [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type), with its specific type parameters erased.      |
| [TypeValueError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeValueError)           | A structured error that directly describes a rejected value.                                                                                     |
| [ValidationOptions](https://evolu.dev/docs/api-reference/common/Type/interfaces/ValidationOptions)     | Configures how container [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) operations report errors.                                   |
| [InferErrors](https://evolu.dev/docs/api-reference/common/Type/type-aliases/InferErrors)               | The union of errors a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) can return from `fromUnknown`.                                 |
| [InferType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/InferType)                   | Extracts the Output of a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                            |
| [TypeErrorFormatter](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter) | Formats a structured [TypeError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeError) as a human-readable message.                          |
| [TypeName](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TypeName)                     | A capitalized name identifying a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) node.                                               |
| [EvoluType](https://evolu.dev/docs/api-reference/common/Type/variables/EvoluType)                      | A [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) validating Evolu Type declarations.                                                |
| [assertType](https://evolu.dev/docs/api-reference/common/Type/functions/assertType)                    | Asserts exact compile-time type equality or that a value belongs to a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) Output domain. |

## Construction

| Name                                                                                                      | Description                                                                                                                                                                |
| --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BrandType](https://evolu.dev/docs/api-reference/common/Type/interfaces/BrandType)                                     | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [brand](https://evolu.dev/docs/api-reference/common/Type/functions/brand).                                  |
| [TransformOutputError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TransformOutputError)               | Wraps an error produced by the output [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) of [transform](https://evolu.dev/docs/api-reference/common/Type/functions/transform). |
| [TransformType](https://evolu.dev/docs/api-reference/common/Type/interfaces/TransformType)                             | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [transform](https://evolu.dev/docs/api-reference/common/Type/functions/transform).                          |
| [BrandFactory](https://evolu.dev/docs/api-reference/common/Type/type-aliases/BrandFactory)                             | Reusable factory for creating a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) with a [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand).         |
| [TransformError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TransformError)                         | An error produced by [transform](https://evolu.dev/docs/api-reference/common/Type/functions/transform) while decoding or validating its output.                                         |
| [ValidateBrandFactoryNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ValidateBrandFactoryNumber) | Numeric parameter preserving literal types in a [BrandFactory](https://evolu.dev/docs/api-reference/common/Type/type-aliases/BrandFactory).                                             |
| [brand](https://evolu.dev/docs/api-reference/common/Type/functions/brand)                                              | Branded [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                       |
| [createType](https://evolu.dev/docs/api-reference/common/Type/functions/createType)                                    | Custom [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                        |
| [transform](https://evolu.dev/docs/api-reference/common/Type/functions/transform)                                      | Transform [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                     |

## Base

| Name                                                                                        | Description                                                                                                                                         |
| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [DataError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DataError)                       | An error containing one or more issues found while validating a candidate as [Data](https://evolu.dev/docs/api-reference/common/Type/variables/Data).            |
| [DataType](https://evolu.dev/docs/api-reference/common/Type/interfaces/DataType)                         | The root [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for Evolu [Data](https://evolu.dev/docs/api-reference/common/Type/variables/Data).          |
| [InstanceOfError](https://evolu.dev/docs/api-reference/common/Type/interfaces/InstanceOfError)           | Error returned when a value is not an instance of the expected constructor.                                                                         |
| [InstanceOfType](https://evolu.dev/docs/api-reference/common/Type/interfaces/InstanceOfType)             | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [instanceOf](https://evolu.dev/docs/api-reference/common/Type/functions/instanceOf). |
| [NeverError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NeverError)                     | Error returned by [Never](https://evolu.dev/docs/api-reference/common/Type/variables/Never) for every value.                                                     |
| [ObjectTag](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectTag)                       | Nominal evidence that a value has one object tag.                                                                                                   |
| [ObjectTagError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectTagError)             | An error returned when an object does not report the expected tag.                                                                                  |
| [ObjectTagType](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectTagType)               | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [objectTag](https://evolu.dev/docs/api-reference/common/Type/functions/objectTag).   |
| [TypeOfError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeOfError)                   | Error returned when `typeof` does not match the expected JavaScript type.                                                                           |
| [Data](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Data)                               | Evolu's recursive platform-independent structured-cloneable data domain.                                                                            |
| [DataIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/DataIssue)                     | One issue found while validating a candidate as [Data](https://evolu.dev/docs/api-reference/common/Type/variables/Data).                                         |
| [InstanceConstructor](https://evolu.dev/docs/api-reference/common/Type/type-aliases/InstanceConstructor) | A JavaScript class constructor accepted by [instanceOf](https://evolu.dev/docs/api-reference/common/Type/functions/instanceOf).                                  |
| [IsData](https://evolu.dev/docs/api-reference/common/Type/type-aliases/IsData)                           | Returns whether a TypeScript type consists only of [Data](https://evolu.dev/docs/api-reference/common/Type/variables/Data).                                      |
| [ArrayBuffer](https://evolu.dev/docs/api-reference/common/Type/variables/ArrayBuffer)                    | A realm-neutral JavaScript ArrayBuffer [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for trusted values.                              |
| [BigInt](https://evolu.dev/docs/api-reference/common/Type/variables/BigInt)                              | A JavaScript bigint [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                    |
| [Boolean](https://evolu.dev/docs/api-reference/common/Type/variables/Boolean)                            | A JavaScript boolean [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                   |
| [Data](https://evolu.dev/docs/api-reference/common/Type/variables/Data)                                  | Root Type for [Data](https://evolu.dev/docs/api-reference/common/Type/variables/Data) values.                                                                    |
| [Date](https://evolu.dev/docs/api-reference/common/Type/variables/Date)                                  | A realm-neutral JavaScript Date [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for trusted values.                                     |
| [Function](https://evolu.dev/docs/api-reference/common/Type/variables/Function)                          | A JavaScript function [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                  |
| [Never](https://evolu.dev/docs/api-reference/common/Type/variables/Never)                                | A [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) rejecting every value.                                                                |
| [Object](https://evolu.dev/docs/api-reference/common/Type/variables/Object)                              | A [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for readonly plain objects with unknown property values.                              |
| [Symbol](https://evolu.dev/docs/api-reference/common/Type/variables/Symbol)                              | A JavaScript symbol [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                    |
| [Uint8Array](https://evolu.dev/docs/api-reference/common/Type/variables/Uint8Array)                      | A realm-neutral JavaScript Uint8Array [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for trusted values.                               |
| [Unknown](https://evolu.dev/docs/api-reference/common/Type/variables/Unknown)                            | An infallible [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) accepting every value.                                                    |
| [instanceOf](https://evolu.dev/docs/api-reference/common/Type/functions/instanceOf)                      | Instance [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for one constructor.                                                           |
| [objectTag](https://evolu.dev/docs/api-reference/common/Type/functions/objectTag)                        | Realm-neutral [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) trusting an object's reported tag.                                        |

## String

| Name                                                                                                    | Description                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Base64UrlError](https://evolu.dev/docs/api-reference/common/Type/interfaces/Base64UrlError)                         | Error returned when a string is not valid [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url) text.                                                        |
| [CapitalizedError](https://evolu.dev/docs/api-reference/common/Type/interfaces/CapitalizedError)                     | Error returned when [capitalized](https://evolu.dev/docs/api-reference/common/Type/variables/capitalized) rejects a string.                                                              |
| [DateIsoError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DateIsoError)                             | Error returned when a string is not a canonical [DateIso](https://evolu.dev/docs/api-reference/common/Type/variables/DateIso).                                                           |
| [DateIsoFromDateError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DateIsoFromDateError)             | Error returned when a [Date](https://evolu.dev/docs/api-reference/common/Type/variables/Date) cannot be represented as [DateIso](https://evolu.dev/docs/api-reference/common/Type/variables/DateIso). |
| [IdError](https://evolu.dev/docs/api-reference/common/Type/interfaces/IdError)                                       | Error returned when a string is not a valid [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id).                                                                         |
| [MnemonicError](https://evolu.dev/docs/api-reference/common/Type/interfaces/MnemonicError)                           | Error returned when a string is not a valid English BIP39 [Mnemonic](https://evolu.dev/docs/api-reference/common/Type/variables/Mnemonic).                                               |
| [NameError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NameError)                                   | Error returned when a string is not a valid [Name](https://evolu.dev/docs/api-reference/common/Type/variables/Name).                                                                     |
| [RegexError](https://evolu.dev/docs/api-reference/common/Type/interfaces/RegexError)                                 | Error returned when a string does not match the regular expression supplied to [regex](https://evolu.dev/docs/api-reference/common/Type/functions/regex).                                |
| [TableId](https://evolu.dev/docs/api-reference/common/Type/interfaces/TableId)                                       | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [id](https://evolu.dev/docs/api-reference/common/Type/functions/id) for one table.                           |
| [TableIdError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TableIdError)                             | Error returned when a string is not a valid [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id) for the expected table.                                                  |
| [TrimmedError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TrimmedError)                             | Error returned when [trimmed](https://evolu.dev/docs/api-reference/common/Type/variables/trimmed) rejects a string.                                                                      |
| [Base64Url](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Base64Url)                                 | Base64Url text without padding.                                                                                                                                             |
| [CapitalizedString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/CapitalizedString)                 | Capitalized [String](https://evolu.dev/docs/api-reference/common/Type/variables/String).                                                                                                 |
| [DateIso](https://evolu.dev/docs/api-reference/common/Type/type-aliases/DateIso)                                     | Canonical ISO date-time [String](https://evolu.dev/docs/api-reference/common/Type/variables/String).                                                                                     |
| [Digit](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit)                                         | Decimal digit from `"0"` to `"9"`.                                                                                                                                          |
| [Digit1To23](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit1To23)                               | Decimal string from `"1"` to `"23"`.                                                                                                                                        |
| [Digit1To51](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit1To51)                               | Decimal string from `"1"` to `"51"`.                                                                                                                                        |
| [Digit1To59](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit1To59)                               | Decimal string from `"1"` to `"59"`.                                                                                                                                        |
| [Digit1To6](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit1To6)                                 | Decimal string from `"1"` to `"6"`.                                                                                                                                         |
| [Digit1To9](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit1To9)                                 | Decimal digit from `"1"` to `"9"`.                                                                                                                                          |
| [Digit1To99](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Digit1To99)                               | Decimal string from `"1"` to `"99"`.                                                                                                                                        |
| [Id](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Id)                                               | Evolu Id: 16 bytes encoded as a 22-character [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url).                                                          |
| [IdBytes](https://evolu.dev/docs/api-reference/common/Type/type-aliases/IdBytes)                                     | Binary representation of an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id).                                                                                         |
| [Mnemonic](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Mnemonic)                                   | A valid English BIP39 mnemonic.                                                                                                                                             |
| [Name](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Name)                                           | A non-empty URL-safe name containing at most 64 UTF-16 code units.                                                                                                          |
| [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString)         | A non-empty [TrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/TrimmedString).                                                                                   |
| [NonEmptyTrimmedString100](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString100)   | A [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString) with at most 100 UTF-16 code units.                                          |
| [NonEmptyTrimmedString1000](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString1000) | A [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString) with at most 1,000 UTF-16 code units.                                        |
| [SimplePassword](https://evolu.dev/docs/api-reference/common/Type/type-aliases/SimplePassword)                       | A trimmed password containing between 8 and 64 UTF-16 code units.                                                                                                           |
| [TrimmedString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TrimmedString)                         | A [String](https://evolu.dev/docs/api-reference/common/Type/variables/String) without surrounding whitespace.                                                                            |
| [UrlSafeString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/UrlSafeString)                         | Non-empty URL-safe [String](https://evolu.dev/docs/api-reference/common/Type/variables/String).                                                                                          |
| [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url)                                    | Base64Url text without padding.                                                                                                                                             |
| [capitalized](https://evolu.dev/docs/api-reference/common/Type/variables/capitalized)                                | Capitalized [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand).                                                                                                 |
| [CapitalizedString](https://evolu.dev/docs/api-reference/common/Type/variables/CapitalizedString)                    | Capitalized [String](https://evolu.dev/docs/api-reference/common/Type/variables/String).                                                                                                 |
| [DateIso](https://evolu.dev/docs/api-reference/common/Type/variables/DateIso)                                        | Canonical ISO date-time [String](https://evolu.dev/docs/api-reference/common/Type/variables/String).                                                                                     |
| [DateIsoFromDate](https://evolu.dev/docs/api-reference/common/Type/variables/DateIsoFromDate)                        | Safely transforms a [Date](https://evolu.dev/docs/api-reference/common/Type/variables/Date) into a canonical [DateIso](https://evolu.dev/docs/api-reference/common/Type/variables/DateIso).           |
| [Digit](https://evolu.dev/docs/api-reference/common/Type/variables/Digit)                                            | Decimal digit from `"0"` to `"9"`.                                                                                                                                          |
| [Digit1To23](https://evolu.dev/docs/api-reference/common/Type/variables/Digit1To23)                                  | Decimal string from `"1"` to `"23"`.                                                                                                                                        |
| [Digit1To51](https://evolu.dev/docs/api-reference/common/Type/variables/Digit1To51)                                  | Decimal string from `"1"` to `"51"`.                                                                                                                                        |
| [Digit1To59](https://evolu.dev/docs/api-reference/common/Type/variables/Digit1To59)                                  | Decimal string from `"1"` to `"59"`.                                                                                                                                        |
| [Digit1To6](https://evolu.dev/docs/api-reference/common/Type/variables/Digit1To6)                                    | Decimal string from `"1"` to `"6"`.                                                                                                                                         |
| [Digit1To9](https://evolu.dev/docs/api-reference/common/Type/variables/Digit1To9)                                    | Decimal digit from `"1"` to `"9"`.                                                                                                                                          |
| [Digit1To99](https://evolu.dev/docs/api-reference/common/Type/variables/Digit1To99)                                  | Decimal string from `"1"` to `"99"`.                                                                                                                                        |
| [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id)                                                  | Evolu Id: 16 bytes encoded as a 22-character [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url).                                                          |
| [IdBytes](https://evolu.dev/docs/api-reference/common/Type/variables/IdBytes)                                        | Binary representation of an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id).                                                                                         |
| [idBytesTypeValueLength](https://evolu.dev/docs/api-reference/common/Type/variables/idBytesTypeValueLength)          | Byte length of an [IdBytes](https://evolu.dev/docs/api-reference/common/Type/variables/IdBytes) value.                                                                                   |
| [Mnemonic](https://evolu.dev/docs/api-reference/common/Type/variables/Mnemonic)                                      | A valid English BIP39 mnemonic.                                                                                                                                             |
| [Name](https://evolu.dev/docs/api-reference/common/Type/variables/Name)                                              | A non-empty URL-safe name containing at most 64 UTF-16 code units.                                                                                                          |
| [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString)            | A non-empty [TrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/TrimmedString).                                                                                   |
| [NonEmptyTrimmedString100](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString100)      | A [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString) with at most 100 UTF-16 code units.                                          |
| [NonEmptyTrimmedString1000](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString1000)    | A [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString) with at most 1,000 UTF-16 code units.                                        |
| [SimplePassword](https://evolu.dev/docs/api-reference/common/Type/variables/SimplePassword)                          | A trimmed password containing between 8 and 64 UTF-16 code units.                                                                                                           |
| [String](https://evolu.dev/docs/api-reference/common/Type/variables/String)                                          | A JavaScript string [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) without additional constraints.                                                             |
| [testName](https://evolu.dev/docs/api-reference/common/Type/variables/testName)                                      | Stable valid [Name](https://evolu.dev/docs/api-reference/common/Type/variables/Name) for tests and internal fixtures.                                                                    |
| [trimmed](https://evolu.dev/docs/api-reference/common/Type/variables/trimmed)                                        | String [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) without surrounding whitespace.                                                                       |
| [TrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/TrimmedString)                            | A [String](https://evolu.dev/docs/api-reference/common/Type/variables/String) without surrounding whitespace.                                                                            |
| [UrlSafeString](https://evolu.dev/docs/api-reference/common/Type/variables/UrlSafeString)                            | Non-empty URL-safe [String](https://evolu.dev/docs/api-reference/common/Type/variables/String).                                                                                          |
| [base64UrlToUint8Array](https://evolu.dev/docs/api-reference/common/Type/functions/base64UrlToUint8Array)            | Converts [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url) to bytes.                                                                                     |
| [createId](https://evolu.dev/docs/api-reference/common/Type/functions/createId)                                      | Creates a cryptographically random [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id).                                                                                  |
| [createIdAsUuidv7](https://evolu.dev/docs/api-reference/common/Type/functions/createIdAsUuidv7)                      | Creates an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id) whose bytes use the UUID v7 timestamp layout.                                                             |
| [createIdFromString](https://evolu.dev/docs/api-reference/common/Type/functions/createIdFromString)                  | Deterministically creates an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id) from the first 16 SHA-256 bytes.                                                        |
| [id](https://evolu.dev/docs/api-reference/common/Type/functions/id)                                                  | Table-specific [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id) Type.                                                                                                 |
| [idBytesToId](https://evolu.dev/docs/api-reference/common/Type/functions/idBytesToId)                                | Converts [IdBytes](https://evolu.dev/docs/api-reference/common/Type/variables/IdBytes) to an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id).                                     |
| [idToIdBytes](https://evolu.dev/docs/api-reference/common/Type/functions/idToIdBytes)                                | Converts an [Id](https://evolu.dev/docs/api-reference/common/Type/variables/Id) to [IdBytes](https://evolu.dev/docs/api-reference/common/Type/variables/IdBytes).                                     |
| [length](https://evolu.dev/docs/api-reference/common/Type/functions/length)                                          | Exact-length [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) for values whose `length` equals `exact`.                                                       |
| [maxLength](https://evolu.dev/docs/api-reference/common/Type/functions/maxLength)                                    | Maximum-length [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) for values whose `length` is at most `max`.                                                   |
| [minLength](https://evolu.dev/docs/api-reference/common/Type/functions/minLength)                                    | Minimum-length [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) for values whose `length` is at least `min`.                                                  |
| [regex](https://evolu.dev/docs/api-reference/common/Type/functions/regex)                                            | String [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) constrained by a regular expression.                                                                  |
| [trim](https://evolu.dev/docs/api-reference/common/Type/functions/trim)                                              | Trims a string and returns a [TrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/TrimmedString).                                                                  |
| [uint8ArrayToBase64Url](https://evolu.dev/docs/api-reference/common/Type/functions/uint8ArrayToBase64Url)            | Converts bytes to [Base64Url](https://evolu.dev/docs/api-reference/common/Type/variables/Base64Url).                                                                                     |

## Number

| Name                                                                                                          | Description                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [BetweenError](https://evolu.dev/docs/api-reference/common/Type/interfaces/BetweenError)                                   | Error returned when [between](https://evolu.dev/docs/api-reference/common/Type/functions/between) rejects a number.                                                       |
| [DecimalStringError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DecimalStringError)                       | Error returned when a string is not a canonical [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                |
| [FiniteError](https://evolu.dev/docs/api-reference/common/Type/interfaces/FiniteError)                                     | Error returned when [finite](https://evolu.dev/docs/api-reference/common/Type/variables/finite) rejects a non-finite number.                                              |
| [GreaterThanError](https://evolu.dev/docs/api-reference/common/Type/interfaces/GreaterThanError)                           | Error returned when [greaterThan](https://evolu.dev/docs/api-reference/common/Type/functions/greaterThan) rejects a number.                                               |
| [GreaterThanOrEqualToError](https://evolu.dev/docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError)         | Error returned when [greaterThanOrEqualTo](https://evolu.dev/docs/api-reference/common/Type/functions/greaterThanOrEqualTo) rejects a number.                             |
| [Int64Error](https://evolu.dev/docs/api-reference/common/Type/interfaces/Int64Error)                                       | Error returned when a bigint is outside the signed 64-bit [Int64](https://evolu.dev/docs/api-reference/common/Type/variables/Int64) range.                                |
| [Int64StringError](https://evolu.dev/docs/api-reference/common/Type/interfaces/Int64StringError)                           | Error returned when a string is not a canonical [Int64String](https://evolu.dev/docs/api-reference/common/Type/variables/Int64String).                                    |
| [IntError](https://evolu.dev/docs/api-reference/common/Type/interfaces/IntError)                                           | Error returned when [int](https://evolu.dev/docs/api-reference/common/Type/variables/int) rejects a number that is not a safe integer.                                    |
| [LessThanError](https://evolu.dev/docs/api-reference/common/Type/interfaces/LessThanError)                                 | Error returned when [lessThan](https://evolu.dev/docs/api-reference/common/Type/functions/lessThan) rejects a number.                                                     |
| [LessThanOrEqualToError](https://evolu.dev/docs/api-reference/common/Type/interfaces/LessThanOrEqualToError)               | Error returned when [lessThanOrEqualTo](https://evolu.dev/docs/api-reference/common/Type/functions/lessThanOrEqualTo) rejects a number.                                   |
| [MultipleOfError](https://evolu.dev/docs/api-reference/common/Type/interfaces/MultipleOfError)                             | Error returned when [multipleOf](https://evolu.dev/docs/api-reference/common/Type/functions/multipleOf) rejects a number.                                                 |
| [NegativeDecimalStringError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NegativeDecimalStringError)       | Error returned when [negativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/negativeDecimalString) rejects a decimal string.                   |
| [NegativeError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NegativeError)                                 | Error returned when [negative](https://evolu.dev/docs/api-reference/common/Type/variables/negative) rejects a number.                                                     |
| [NonNaNError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NonNaNError)                                     | Error returned when [nonNaN](https://evolu.dev/docs/api-reference/common/Type/variables/nonNaN) rejects `NaN`.                                                            |
| [NonNegativeDecimalStringError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NonNegativeDecimalStringError) | Error returned when [nonNegativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/nonNegativeDecimalString) rejects a decimal string.             |
| [NonNegativeError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NonNegativeError)                           | Error returned when [nonNegative](https://evolu.dev/docs/api-reference/common/Type/variables/nonNegative) rejects a number.                                               |
| [NonPositiveDecimalStringError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NonPositiveDecimalStringError) | Error returned when [nonPositiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/nonPositiveDecimalString) rejects a decimal string.             |
| [NonPositiveError](https://evolu.dev/docs/api-reference/common/Type/interfaces/NonPositiveError)                           | Error returned when [nonPositive](https://evolu.dev/docs/api-reference/common/Type/variables/nonPositive) rejects a number.                                               |
| [PositiveDecimalStringError](https://evolu.dev/docs/api-reference/common/Type/interfaces/PositiveDecimalStringError)       | Error returned when [positiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/positiveDecimalString) rejects a decimal string.                   |
| [PositiveError](https://evolu.dev/docs/api-reference/common/Type/interfaces/PositiveError)                                 | Error returned when [positive](https://evolu.dev/docs/api-reference/common/Type/variables/positive) rejects a number.                                                     |
| [UInt64Error](https://evolu.dev/docs/api-reference/common/Type/interfaces/UInt64Error)                                     | Error returned when a bigint is outside the unsigned 64-bit [UInt64](https://evolu.dev/docs/api-reference/common/Type/variables/UInt64) range.                            |
| [Age](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Age)                                                   | A person's age as a [NonNegativeInt](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeInt) less than 200.                                            |
| [DecimalString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/DecimalString)                               | Canonical string representation of a signed base-10 decimal value.                                                                                           |
| [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/FiniteNumber)                                 | Finite [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                       |
| [Int](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Int)                                                   | Safe integer [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).                                                                     |
| [Int64](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Int64)                                               | Signed 64-bit [BigInt](https://evolu.dev/docs/api-reference/common/Type/variables/BigInt).                                                                                |
| [Int64String](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Int64String)                                   | Decimal string representation of a signed [Int64](https://evolu.dev/docs/api-reference/common/Type/variables/Int64).                                                      |
| [NegativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NegativeDecimalString)               | Negative [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                       |
| [NegativeInt](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NegativeInt)                                   | Negative [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                         |
| [NegativeNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NegativeNumber)                             | Negative [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                     |
| [NonNaNNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonNaNNumber)                                 | [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number) other than `NaN`; infinities are allowed.                                                     |
| [NonNegativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonNegativeDecimalString)         | Non-negative [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                   |
| [NonNegativeFiniteNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonNegativeFiniteNumber)           | Non-negative [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).                                                                     |
| [NonNegativeInt](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonNegativeInt)                             | Non-negative [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                     |
| [NonNegativeNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonNegativeNumber)                       | Non-negative [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                 |
| [NonPositiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonPositiveDecimalString)         | Non-positive [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                   |
| [NonPositiveInt](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonPositiveInt)                             | Non-positive [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                     |
| [NonPositiveNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NonPositiveNumber)                       | Non-positive [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                 |
| [PositiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/type-aliases/PositiveDecimalString)               | Positive [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                       |
| [PositiveFiniteNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/PositiveFiniteNumber)                 | Positive [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).                                                                         |
| [PositiveInt](https://evolu.dev/docs/api-reference/common/Type/type-aliases/PositiveInt)                                   | Positive [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                         |
| [PositiveNumber](https://evolu.dev/docs/api-reference/common/Type/type-aliases/PositiveNumber)                             | Positive [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                     |
| [Ratio](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Ratio)                                               | Finite [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number) from zero to one, inclusive.                                                           |
| [UInt64](https://evolu.dev/docs/api-reference/common/Type/type-aliases/UInt64)                                             | Unsigned 64-bit [BigInt](https://evolu.dev/docs/api-reference/common/Type/variables/BigInt).                                                                              |
| [Age](https://evolu.dev/docs/api-reference/common/Type/variables/Age)                                                      | A person's age as a [NonNegativeInt](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeInt) less than 200.                                            |
| [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString)                                  | Canonical string representation of a signed base-10 decimal value.                                                                                           |
| [finite](https://evolu.dev/docs/api-reference/common/Type/variables/finite)                                                | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a finite value.                                                              |
| [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber)                                    | Finite [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                       |
| [int](https://evolu.dev/docs/api-reference/common/Type/variables/int)                                                      | Safe integer [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand).                                                                                 |
| [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1)                                                    | Safe integer [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).                                                                     |
| [Int64](https://evolu.dev/docs/api-reference/common/Type/variables/Int64)                                                  | Signed 64-bit [BigInt](https://evolu.dev/docs/api-reference/common/Type/variables/BigInt).                                                                                |
| [Int64FromInt64String](https://evolu.dev/docs/api-reference/common/Type/variables/Int64FromInt64String)                    | Transforms an [Int64String](https://evolu.dev/docs/api-reference/common/Type/variables/Int64String) into an [Int64](https://evolu.dev/docs/api-reference/common/Type/variables/Int64). |
| [Int64String](https://evolu.dev/docs/api-reference/common/Type/variables/Int64String)                                      | Decimal string representation of a signed [Int64](https://evolu.dev/docs/api-reference/common/Type/variables/Int64).                                                      |
| [maxPositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/maxPositiveInt)                                | Maximum [PositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveInt) value.                                                                      |
| [negative](https://evolu.dev/docs/api-reference/common/Type/variables/negative)                                            | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value less than zero.                                                      |
| [negativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/negativeDecimalString)                  | [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString) Brand requiring a value less than zero.                                         |
| [NegativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/NegativeDecimalString-1)                | Negative [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                       |
| [NegativeInt](https://evolu.dev/docs/api-reference/common/Type/variables/NegativeInt)                                      | Negative [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                         |
| [NegativeNumber](https://evolu.dev/docs/api-reference/common/Type/variables/NegativeNumber)                                | Negative [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                     |
| [nonNaN](https://evolu.dev/docs/api-reference/common/Type/variables/nonNaN)                                                | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value other than `NaN`.                                                    |
| [NonNaNNumber](https://evolu.dev/docs/api-reference/common/Type/variables/NonNaNNumber)                                    | [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number) other than `NaN`; infinities are allowed.                                                     |
| [nonNegative](https://evolu.dev/docs/api-reference/common/Type/variables/nonNegative)                                      | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value greater than or equal to zero.                                       |
| [nonNegativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/nonNegativeDecimalString)            | [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString) Brand requiring a value greater than or equal to zero.                          |
| [NonNegativeDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeDecimalString-1)          | Non-negative [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                   |
| [NonNegativeFiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeFiniteNumber)              | Non-negative [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).                                                                     |
| [NonNegativeInt](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeInt)                                | Non-negative [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                     |
| [NonNegativeNumber](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeNumber)                          | Non-negative [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                 |
| [nonPositive](https://evolu.dev/docs/api-reference/common/Type/variables/nonPositive)                                      | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value less than or equal to zero.                                          |
| [nonPositiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/nonPositiveDecimalString)            | [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString) Brand requiring a value less than or equal to zero.                             |
| [NonPositiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/NonPositiveDecimalString-1)          | Non-positive [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                   |
| [NonPositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/NonPositiveInt)                                | Non-positive [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                     |
| [NonPositiveNumber](https://evolu.dev/docs/api-reference/common/Type/variables/NonPositiveNumber)                          | Non-positive [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                 |
| [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number)                                                | A JavaScript number, including `NaN`, `Infinity`, and `-Infinity`.                                                                                           |
| [onePositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/onePositiveInt)                                | Minimum [PositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveInt) value.                                                                      |
| [positive](https://evolu.dev/docs/api-reference/common/Type/variables/positive)                                            | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value greater than zero.                                                   |
| [positiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/positiveDecimalString)                  | [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString) Brand requiring a value greater than zero.                                      |
| [PositiveDecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveDecimalString-1)                | Positive [DecimalString](https://evolu.dev/docs/api-reference/common/Type/variables/DecimalString).                                                                       |
| [PositiveFiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveFiniteNumber)                    | Positive [FiniteNumber](https://evolu.dev/docs/api-reference/common/Type/variables/FiniteNumber).                                                                         |
| [PositiveInt](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveInt)                                      | Positive [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).                                                                                         |
| [PositiveNumber](https://evolu.dev/docs/api-reference/common/Type/variables/PositiveNumber)                                | Positive [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number).                                                                                     |
| [Ratio](https://evolu.dev/docs/api-reference/common/Type/variables/Ratio)                                                  | Finite [Number](https://evolu.dev/docs/api-reference/common/Type/variables/Number) from zero to one, inclusive.                                                           |
| [UInt64](https://evolu.dev/docs/api-reference/common/Type/variables/UInt64)                                                | Unsigned 64-bit [BigInt](https://evolu.dev/docs/api-reference/common/Type/variables/BigInt).                                                                              |
| [zeroNonNegativeInt](https://evolu.dev/docs/api-reference/common/Type/variables/zeroNonNegativeInt)                        | Minimum [NonNegativeInt](https://evolu.dev/docs/api-reference/common/Type/variables/NonNegativeInt) value.                                                                |
| [between](https://evolu.dev/docs/api-reference/common/Type/functions/between)                                              | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value within an inclusive range.                                           |
| [greaterThan](https://evolu.dev/docs/api-reference/common/Type/functions/greaterThan)                                      | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value greater than `min`.                                                  |
| [greaterThanOrEqualTo](https://evolu.dev/docs/api-reference/common/Type/functions/greaterThanOrEqualTo)                    | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value greater than or equal to `min`.                                      |
| [lessThan](https://evolu.dev/docs/api-reference/common/Type/functions/lessThan)                                            | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value less than `max`.                                                     |
| [lessThanOrEqualTo](https://evolu.dev/docs/api-reference/common/Type/functions/lessThanOrEqualTo)                          | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring a value less than or equal to `max`.                                         |
| [multipleOf](https://evolu.dev/docs/api-reference/common/Type/functions/multipleOf)                                        | Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring an exact decimal multiple of `divisor`.                                      |

## Collection

| Name                                                                                                | Description                                                                                                                                                          |
| --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ArrayAccessorIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/ArrayAccessorIssue)             | An array element defined by an accessor instead of a data property.                                                                                                  |
| [ArrayExcessPropertyIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/ArrayExcessPropertyIssue) | An own array property other than `length` or an indexed element.                                                                                                     |
| [ArrayHoleIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/ArrayHoleIssue)                     | A missing array element.                                                                                                                                             |
| [ArrayNotArrayError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ArrayNotArrayError)             | Error returned when an [array](https://evolu.dev/docs/api-reference/common/Type/functions/array) input is not an array.                                                           |
| [ArrayType](https://evolu.dev/docs/api-reference/common/Type/interfaces/ArrayType)                               | The homogeneous readonly-array [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [array](https://evolu.dev/docs/api-reference/common/Type/functions/array). |
| [LengthError](https://evolu.dev/docs/api-reference/common/Type/interfaces/LengthError)                           | Error returned when [length](https://evolu.dev/docs/api-reference/common/Type/functions/length) rejects a value.                                                                  |
| [MapExcessPropertyIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/MapExcessPropertyIssue)     | An own property found on a Map value.                                                                                                                                |
| [MapKeyCollisionIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/MapKeyCollisionIssue)         | Two [map](https://evolu.dev/docs/api-reference/common/Type/functions/map) keys that decode to the same output key.                                                                |
| [MapNotMapError](https://evolu.dev/docs/api-reference/common/Type/interfaces/MapNotMapError)                     | Error returned when a [map](https://evolu.dev/docs/api-reference/common/Type/functions/map) input is not a Map.                                                                   |
| [MapType](https://evolu.dev/docs/api-reference/common/Type/interfaces/MapType)                                   | The readonly-map [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [map](https://evolu.dev/docs/api-reference/common/Type/functions/map).                   |
| [MaxLengthError](https://evolu.dev/docs/api-reference/common/Type/interfaces/MaxLengthError)                     | Error returned when [maxLength](https://evolu.dev/docs/api-reference/common/Type/functions/maxLength) rejects a value.                                                            |
| [MinLengthError](https://evolu.dev/docs/api-reference/common/Type/interfaces/MinLengthError)                     | Error returned when [minLength](https://evolu.dev/docs/api-reference/common/Type/functions/minLength) rejects a value.                                                            |
| [SetExcessPropertyIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/SetExcessPropertyIssue)     | An own property found on a Set value.                                                                                                                                |
| [SetNotSetError](https://evolu.dev/docs/api-reference/common/Type/interfaces/SetNotSetError)                     | Error returned when a [set](https://evolu.dev/docs/api-reference/common/Type/functions/set) input is not a Set.                                                                   |
| [SetType](https://evolu.dev/docs/api-reference/common/Type/interfaces/SetType)                                   | The homogeneous readonly-set [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [set](https://evolu.dev/docs/api-reference/common/Type/functions/set).       |
| [TupleAccessorIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/TupleAccessorIssue)             | An accessor element in a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                                                               |
| [TupleExcessPropertyIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/TupleExcessPropertyIssue) | An undeclared own property in a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                                                        |
| [TupleHoleIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/TupleHoleIssue)                     | A missing indexed element in a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                                                         |
| [TupleInvalidLengthError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TupleInvalidLengthError)   | An error returned when a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple) input has the wrong length.                                                    |
| [TupleNotArrayError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TupleNotArrayError)             | An error returned when a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple) input is not an Array.                                                         |
| [TupleType](https://evolu.dev/docs/api-reference/common/Type/interfaces/TupleType)                               | The fixed-length heterogeneous [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple). |
| [ArrayElementIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ArrayElementIssue)             | An invalid array element and its index.                                                                                                                              |
| [ArrayElementsError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ArrayElementsError)           | An [array](https://evolu.dev/docs/api-reference/common/Type/functions/array) error containing element errors from a typed boundary.                                               |
| [ArrayError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ArrayError)                           | Error returned by [array](https://evolu.dev/docs/api-reference/common/Type/functions/array) for a non-array value or invalid array items.                                         |
| [ArrayIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ArrayIssue)                           | One structural or element issue found by [array](https://evolu.dev/docs/api-reference/common/Type/functions/array).                                                               |
| [ArrayItemsError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ArrayItemsError)                 | An [array](https://evolu.dev/docs/api-reference/common/Type/functions/array) error containing structural or element issues.                                                       |
| [MapEntriesError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/MapEntriesError)                 | Entry errors returned by a [map](https://evolu.dev/docs/api-reference/common/Type/functions/map) operation.                                                                       |
| [MapError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/MapError)                               | Error returned while validating a [map](https://evolu.dev/docs/api-reference/common/Type/functions/map) and its entries.                                                          |
| [MapIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/MapIssue)                               | An invalid key, value, or structure in a [map](https://evolu.dev/docs/api-reference/common/Type/functions/map).                                                                   |
| [MapKeyIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/MapKeyIssue)                         | An invalid key and its entry index in a [map](https://evolu.dev/docs/api-reference/common/Type/functions/map).                                                                    |
| [MapValueIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/MapValueIssue)                     | An invalid value and its entry index in a [map](https://evolu.dev/docs/api-reference/common/Type/functions/map).                                                                  |
| [SetElementIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/SetElementIssue)                 | An invalid Set element and its iteration index.                                                                                                                      |
| [SetElementsError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/SetElementsError)               | A [set](https://evolu.dev/docs/api-reference/common/Type/functions/set) error containing element errors from a typed boundary.                                                    |
| [SetError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/SetError)                               | Error returned by [set](https://evolu.dev/docs/api-reference/common/Type/functions/set) for a non-Set value or invalid Set items.                                                 |
| [SetItemsError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/SetItemsError)                     | A [set](https://evolu.dev/docs/api-reference/common/Type/functions/set) error containing structural or element issues.                                                            |
| [TupleElementIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TupleElementIssue)             | An error returned by one element Type in a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                                             |
| [TupleElementsError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TupleElementsError)           | Element errors possible after a typed [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple) boundary was asserted.                                            |
| [TupleError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TupleError)                           | An error returned while validating a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                                                   |
| [TupleIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TupleIssue)                           | One structural or element issue found in a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                                             |
| [TupleItemsError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TupleItemsError)                 | An error containing structural or element issues found in a [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple).                                            |
| [array](https://evolu.dev/docs/api-reference/common/Type/functions/array)                                        | Array [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                   |
| [length](https://evolu.dev/docs/api-reference/common/Type/functions/length)                                      | Exact-length [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) for values whose `length` equals `exact`.                                                |
| [map](https://evolu.dev/docs/api-reference/common/Type/functions/map)                                            | Map [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) whose keys and values must match their respective Types.                                             |
| [maxLength](https://evolu.dev/docs/api-reference/common/Type/functions/maxLength)                                | Maximum-length [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) for values whose `length` is at most `max`.                                            |
| [minLength](https://evolu.dev/docs/api-reference/common/Type/functions/minLength)                                | Minimum-length [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) for values whose `length` is at least `min`.                                           |
| [set](https://evolu.dev/docs/api-reference/common/Type/functions/set)                                            | Set [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) whose every element must match one Type.                                                             |
| [tuple](https://evolu.dev/docs/api-reference/common/Type/functions/tuple)                                        | Tuple [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                   |

## Objects

| Name                                                                                                            | Description                                                                                                                                                                             |
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ObjectError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectError)                                       | An error returned while validating an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) and its properties.                                                                |
| [ObjectExcessPropertyError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectExcessPropertyError)           | An error returned for an input property outside an Object Type's allowed key domain.                                                                                                    |
| [ObjectMissingPropertyError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectMissingPropertyError)         | An error returned when a required [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) property is absent.                                                                    |
| [ObjectNotObjectError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectNotObjectError)                     | An error returned when an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) input is not an object.                                                                        |
| [ObjectPropertiesError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectPropertiesError)                   | An error returned while validating the properties of an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object).                                                                 |
| [ObjectPropertyAccessError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectPropertyAccessError)           | An error returned when a present [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) property is not represented as an enumerable data property.                             |
| [ObjectUnexpectedPrototypeError](https://evolu.dev/docs/api-reference/common/Type/interfaces/ObjectUnexpectedPrototypeError) | An error returned when an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) input falls outside its supported plain-object prototype boundary.                             |
| [OptionalProperty](https://evolu.dev/docs/api-reference/common/Type/interfaces/OptionalProperty)                             | An optional property used to construct an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) Type.                                                                          |
| [RecordAccessorIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/RecordAccessorIssue)                       | An accessor property rejected by [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                                                                        |
| [RecordCollisionIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/RecordCollisionIssue)                     | Two [record](https://evolu.dev/docs/api-reference/common/Type/functions/record) keys that decode to the same output key.                                                                             |
| [RecordNonEnumerableIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/RecordNonEnumerableIssue)             | A non-enumerable property rejected by [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                                                                   |
| [RecordNotPlainRecordError](https://evolu.dev/docs/api-reference/common/Type/interfaces/RecordNotPlainRecordError)           | Error returned when a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record) input is not a plain object.                                                                       |
| [RecordNotRecordError](https://evolu.dev/docs/api-reference/common/Type/interfaces/RecordNotRecordError)                     | Error returned when a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record) input is not an object.                                                                            |
| [RecordType](https://evolu.dev/docs/api-reference/common/Type/interfaces/RecordType)                                         | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                             |
| [NullableToOptionalProps](https://evolu.dev/docs/api-reference/common/Type/type-aliases/NullableToOptionalProps)             | Maps object properties whose Union Type includes [Null](https://evolu.dev/docs/api-reference/common/Type/variables/Null) to optional properties.                                                     |
| [ObjectProps](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ObjectProps)                                     | Properties used to construct an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) Type.                                                                                    |
| [ObjectType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ObjectType)                                       | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [object](https://evolu.dev/docs/api-reference/common/Type/functions/object).                                             |
| [PartialObjectProps](https://evolu.dev/docs/api-reference/common/Type/type-aliases/PartialObjectProps)                       | Maps every required object property Type to an optional property.                                                                                                                       |
| [RecordEntriesError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/RecordEntriesError)                       | Entry errors returned by a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record) operation.                                                                                    |
| [RecordError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/RecordError)                                     | Error returned while validating a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record) and its entries.                                                                       |
| [RecordIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/RecordIssue)                                     | An invalid key, value, or property structure in a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                                                       |
| [RecordKeyIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/RecordKeyIssue)                               | An invalid key and its source property key in a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                                                         |
| [RecordStructuralIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/RecordStructuralIssue)                 | A property-structure issue returned by [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                                                                  |
| [RecordValueIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/RecordValueIssue)                           | An invalid value and its property key in a [record](https://evolu.dev/docs/api-reference/common/Type/functions/record).                                                                              |
| [nullableToOptional](https://evolu.dev/docs/api-reference/common/Type/functions/nullableToOptional)                          | Object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) making every property whose Union Type includes [Null](https://evolu.dev/docs/api-reference/common/Type/variables/Null) optional. |
| [object](https://evolu.dev/docs/api-reference/common/Type/functions/object)                                                  | Plain object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                               |
| [omit](https://evolu.dev/docs/api-reference/common/Type/functions/omit)                                                      | Object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) without the selected declared properties.                                                                            |
| [optional](https://evolu.dev/docs/api-reference/common/Type/functions/optional)                                              | Optional [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) property.                                                                                                       |
| [partial](https://evolu.dev/docs/api-reference/common/Type/functions/partial)                                                | Object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) with every property optional.                                                                                        |
| [record](https://evolu.dev/docs/api-reference/common/Type/functions/record)                                                  | Record [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                                     |

## Unions

| Name                                                                                | Description                                                                                                                                                                |
| ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [LiteralError](https://evolu.dev/docs/api-reference/common/Type/interfaces/LiteralError)         | Error returned when a value does not equal the expected literal.                                                                                                           |
| [LiteralType](https://evolu.dev/docs/api-reference/common/Type/interfaces/LiteralType)           | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [literal](https://evolu.dev/docs/api-reference/common/Type/functions/literal).                              |
| [UnionMemberError](https://evolu.dev/docs/api-reference/common/Type/interfaces/UnionMemberError) | An error returned by one [union](https://evolu.dev/docs/api-reference/common/Type/functions/union) member and its index.                                                                |
| [UnionType](https://evolu.dev/docs/api-reference/common/Type/interfaces/UnionType)               | The [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [union](https://evolu.dev/docs/api-reference/common/Type/functions/union).                                  |
| [UnionError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/UnionError)           | Error returned when every member of a [union](https://evolu.dev/docs/api-reference/common/Type/functions/union) rejects an input.                                                       |
| [UnionInputType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/UnionInputType)   | A root [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) validating the encoded Inputs accepted by [union](https://evolu.dev/docs/api-reference/common/Type/functions/union). |
| [Null](https://evolu.dev/docs/api-reference/common/Type/variables/Null)                          | Literal [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) accepting only `null`.                                                                                 |
| [Undefined](https://evolu.dev/docs/api-reference/common/Type/variables/Undefined)                | Literal [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) accepting only `undefined`.                                                                            |
| [literal](https://evolu.dev/docs/api-reference/common/Type/functions/literal)                    | Literal [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                       |
| [nullishOr](https://evolu.dev/docs/api-reference/common/Type/functions/nullishOr)                | Union [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) containing the supplied Type, `null`, and `undefined`.                                                   |
| [nullOr](https://evolu.dev/docs/api-reference/common/Type/functions/nullOr)                      | Union [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) containing the supplied Type and `null`.                                                                 |
| [undefinedOr](https://evolu.dev/docs/api-reference/common/Type/functions/undefinedOr)            | Union [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) containing the supplied Type and `undefined`.                                                            |
| [union](https://evolu.dev/docs/api-reference/common/Type/functions/union)                        | Union [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                         |

## Template literals

| Name                                                                                                  | Description                                                                                                                                                                       |
| ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [TemplateLiteralError](https://evolu.dev/docs/api-reference/common/Type/interfaces/TemplateLiteralError)           | Error returned when a string does not match a template literal declaration.                                                                                                       |
| [TemplateLiteralParserType](https://evolu.dev/docs/api-reference/common/Type/interfaces/TemplateLiteralParserType) | The parsing [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [templateLiteralParser](https://evolu.dev/docs/api-reference/common/Type/functions/templateLiteralParser). |
| [TemplateLiteralType](https://evolu.dev/docs/api-reference/common/Type/interfaces/TemplateLiteralType)             | The validating string [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [templateLiteral](https://evolu.dev/docs/api-reference/common/Type/functions/templateLiteral).   |
| [templateLiteral](https://evolu.dev/docs/api-reference/common/Type/functions/templateLiteral)                      | Template literal [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for validation.                                                                                      |
| [templateLiteralParser](https://evolu.dev/docs/api-reference/common/Type/functions/templateLiteralParser)          | Template literal [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) that parses canonical strings into Tuples.                                                           |

## Discriminated unions

| Name                                                                                                                          | Description                                                                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [DiscriminatedUnionDiscriminatorError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DiscriminatedUnionDiscriminatorError)   | An error returned when no member of [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion) matches.                                                      |
| [DiscriminatedUnionMemberIssue](https://evolu.dev/docs/api-reference/common/Type/interfaces/DiscriminatedUnionMemberIssue)                 | A selected-member issue returned by [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion).                                                              |
| [DiscriminatedUnionObjectError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DiscriminatedUnionObjectError)                 | An error returned when a value cannot be routed through [Object](https://evolu.dev/docs/api-reference/common/Type/variables/Object).                                                                  |
| [DiscriminatedUnionPropertyAccessError](https://evolu.dev/docs/api-reference/common/Type/interfaces/DiscriminatedUnionPropertyAccessError) | An error returned when the discriminator for [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion) is not an own enumerable data property.              |
| [DiscriminatedUnionType](https://evolu.dev/docs/api-reference/common/Type/interfaces/DiscriminatedUnionType)                               | The routed [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) returned by [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion).               |
| [Typed](https://evolu.dev/docs/api-reference/common/Type/interfaces/Typed)                                                                 | A TypeScript interface with a literal `type` property.                                                                                                                                   |
| [DiscriminatedUnionError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/DiscriminatedUnionError)                           | An error returned while selecting a member in [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion).                                                    |
| [DiscriminatedUnionInputType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/DiscriminatedUnionInputType)                   | A root [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) validating Inputs accepted by [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion). |
| [DiscriminatedUnionMemberError](https://evolu.dev/docs/api-reference/common/Type/type-aliases/DiscriminatedUnionMemberError)               | An error returned by the member selected by [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion).                                                      |
| [ExtractTyped](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ExtractTyped)                                                 | Extracts members of a [Typed](https://evolu.dev/docs/api-reference/common/Type/interfaces/Typed) Output union by their `type` literal.                                                                |
| [TypedType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/TypedType)                                                       | The [ObjectType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ObjectType) returned by [typed](https://evolu.dev/docs/api-reference/common/Type/functions/typed).                                  |
| [discriminatedUnion](https://evolu.dev/docs/api-reference/common/Type/functions/discriminatedUnion)                                        | Discriminated union [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                         |
| [typed](https://evolu.dev/docs/api-reference/common/Type/functions/typed)                                                                  | Creates an [ObjectType](https://evolu.dev/docs/api-reference/common/Type/type-aliases/ObjectType) with a literal `type` property.                                                                     |

## Results

| Name                                                                                    | Description                                                                                                                                           |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [UnknownNextResult](https://evolu.dev/docs/api-reference/common/Type/type-aliases/UnknownNextResult) | A [nextResult](https://evolu.dev/docs/api-reference/common/Type/functions/nextResult) Type with unknown value, error, and done components.                         |
| [UnknownResult](https://evolu.dev/docs/api-reference/common/Type/type-aliases/UnknownResult)         | A [result](https://evolu.dev/docs/api-reference/common/Type/functions/result) Type for `Result<unknown, unknown>`.                                                 |
| [UnknownNextResult](https://evolu.dev/docs/api-reference/common/Type/variables/UnknownNextResult)    | A [nextResult](https://evolu.dev/docs/api-reference/common/Type/functions/nextResult) Type with unknown value, error, and done components.                         |
| [UnknownResult](https://evolu.dev/docs/api-reference/common/Type/variables/UnknownResult)            | A [result](https://evolu.dev/docs/api-reference/common/Type/functions/result) Type for `Result<unknown, unknown>`.                                                 |
| [nextResult](https://evolu.dev/docs/api-reference/common/Type/functions/nextResult)                  | Creates a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for producer Results with value, error, or done outcomes.                       |
| [result](https://evolu.dev/docs/api-reference/common/Type/functions/result)                          | Creates a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result) values. |

## Recursive

| Name                                                                | Description                                                                                                         |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [LazyType](https://evolu.dev/docs/api-reference/common/Type/interfaces/LazyType) | A deferred [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) with an explicit recursive type declaration. |
| [lazy](https://evolu.dev/docs/api-reference/common/Type/functions/lazy)          | Creates a lazy [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) for recursive definitions.               |

## JSON

| Name                                                                                 | Description                                                                                                                                                                                                                  |
| ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [JsonError](https://evolu.dev/docs/api-reference/common/Type/interfaces/JsonError)                | An error returned when a string does not contain valid JSON text.                                                                                                                                                            |
| [JsonObject](https://evolu.dev/docs/api-reference/common/Type/interfaces/JsonObject)              | An exact JSON object containing only [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) properties.                                                                                                        |
| [JsonObjectInput](https://evolu.dev/docs/api-reference/common/Type/interfaces/JsonObjectInput)    | A candidate JSON object before exact runtime validation.                                                                                                                                                                     |
| [JsonObjectType](https://evolu.dev/docs/api-reference/common/Type/interfaces/JsonObjectType)      | The exact top-level JSON object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                                                 |
| [JsonValueError](https://evolu.dev/docs/api-reference/common/Type/interfaces/JsonValueError)      | An error containing one or more issues found while validating a candidate as an exact [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue).                                                                  |
| [JsonValueType](https://evolu.dev/docs/api-reference/common/Type/interfaces/JsonValueType)        | The exact root [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) of in-memory JSON data values.                                                                                                                    |
| [Json](https://evolu.dev/docs/api-reference/common/Type/type-aliases/Json)                        | A [String](https://evolu.dev/docs/api-reference/common/Type/variables/String) Brand proving that its exact text parses to [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue).                                           |
| [JsonArray](https://evolu.dev/docs/api-reference/common/Type/type-aliases/JsonArray)              | An exact JSON array containing only [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) elements.                                                                                                           |
| [JsonArrayInput](https://evolu.dev/docs/api-reference/common/Type/type-aliases/JsonArrayInput)    | A candidate JSON array before exact runtime validation.                                                                                                                                                                      |
| [JsonValue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/JsonValue)              | An exact in-memory JSON data value.                                                                                                                                                                                          |
| [JsonValueInput](https://evolu.dev/docs/api-reference/common/Type/type-aliases/JsonValueInput)    | A candidate JSON value before exact runtime validation.                                                                                                                                                                      |
| [JsonValueIssue](https://evolu.dev/docs/api-reference/common/Type/type-aliases/JsonValueIssue)    | One issue found while validating a candidate as an exact [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue).                                                                                               |
| [Json](https://evolu.dev/docs/api-reference/common/Type/variables/Json)                           | A [String](https://evolu.dev/docs/api-reference/common/Type/variables/String) Brand proving that its exact text parses to [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue).                                           |
| [JsonArray](https://evolu.dev/docs/api-reference/common/Type/variables/JsonArray)                 | Exact top-level JSON array [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                                                      |
| [JsonObject](https://evolu.dev/docs/api-reference/common/Type/variables/JsonObject)               | Exact top-level JSON object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                                                                                                     |
| [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue)                 | Exact root Type for [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) data trees.                                                                                                                         |
| [JsonValueFromJson](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValueFromJson) | Transformation [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) that parses [Json](https://evolu.dev/docs/api-reference/common/Type/variables/Json) into [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue). |
| [json](https://evolu.dev/docs/api-reference/common/Type/functions/json)                           | Branded [Json](https://evolu.dev/docs/api-reference/common/Type/variables/Json) Type and conversions for another [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).                                                             |
| [jsonToJsonValue](https://evolu.dev/docs/api-reference/common/Type/functions/jsonToJsonValue)     | Converts proven [Json](https://evolu.dev/docs/api-reference/common/Type/variables/Json) text to an exact [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue).                                                            |
| [jsonValueToJson](https://evolu.dev/docs/api-reference/common/Type/functions/jsonValueToJson)     | Converts an exact [JsonValue](https://evolu.dev/docs/api-reference/common/Type/variables/JsonValue) to canonical [Json](https://evolu.dev/docs/api-reference/common/Type/variables/Json) text.                                                         |

## Localization

| Variable                                                                     | Description                                                                                                    |
| ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| [localizeTypes](https://evolu.dev/docs/api-reference/common/Type/variables/localizeTypes) | Creates localized copies of selected [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) declarations. |