# `ExAST.Index`
[🔗](https://github.com/elixir-vibe/ex_ast/blob/v0.11.0/lib/ex_ast/index.ex#L1)

Candidate-index metadata for ExAST patterns and selectors.

This module exposes conservative structural terms and source requirements for
storage/indexing layers. Terms are only candidates; callers must still verify
matches with ExAST.

# `plan`

```elixir
@spec plan(ExAST.Pattern.pattern() | ExAST.Selector.t()) :: ExAST.Index.Plan.t()
```

# `term_signal`

```elixir
@spec term_signal(String.t()) :: ExAST.Index.Terms.signal()
```

# `terms`

```elixir
@spec terms(ExAST.Pattern.pattern() | ExAST.Selector.t()) :: MapSet.t(String.t())
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
