# Type Alias: Navigation

[Mobile Document Scanner API Reference](../index.md) / Navigation

# Type Alias: Navigation

> **Navigation** = \{ `from`: [`PhaseName`](PhaseName.md) \| `null`; `to`: [`PhaseName`](PhaseName.md); `type`: `"phase"`; \} \| \{ `from`: [`ModeName`](ModeName.md) \| `null`; `phase`: `"rectify"` \| `"edit"`; `to`: [`ModeName`](ModeName.md) \| `null`; `type`: `"mode"`; \} \| \{ `open`: `boolean`; `overlay`: [`OverlayName`](OverlayName.md); `phase`: [`PhaseName`](PhaseName.md); `type`: `"overlay"`; \}

Defined in: [src/results.ts:19](https://github.com/Dynamsoft/document-scanner-javascript/blob/main/src/results.ts#L19)

A move of the user between screens, modes, and overlays, which the
[navigate](../interfaces/ScannerEvents.md#navigate) event reports. A minor release may add
a `type`, so a switch on `type` needs a default branch.

## Union Members

### Type Literal

\{ `from`: [`PhaseName`](PhaseName.md) \| `null`; `to`: [`PhaseName`](PhaseName.md); `type`: `"phase"`; \}

The screen of a phase opened, after the screen of another phase or after none.

***

### Type Literal

\{ `from`: [`ModeName`](ModeName.md) \| `null`; `phase`: `"rectify"` \| `"edit"`; `to`: [`ModeName`](ModeName.md) \| `null`; `type`: `"mode"`; \}

A mode opened or closed on the screen of `phase`.

***

### Type Literal

\{ `open`: `boolean`; `overlay`: [`OverlayName`](OverlayName.md); `phase`: [`PhaseName`](PhaseName.md); `type`: `"overlay"`; \}

An overlay opened or closed over the screen of `phase`. At most one overlay is
open at a time.
