# `Electric.Shapes.Consumer.Subqueries.ActiveMove`
[🔗](https://github.com/electric-sql/electric/tree/%40core/sync-service%401.6.2/packages/sync-service/lib/electric/shapes/consumer/subqueries/active_move.ex#L1)

# `move_value`

```elixir
@type move_value() :: {term(), term()}
```

# `t`

```elixir
@type t() :: %Electric.Shapes.Consumer.Subqueries.ActiveMove{
  boundary_txn_count: non_neg_integer() | nil,
  buffered_txn_count: non_neg_integer(),
  buffered_txns: [Electric.Replication.Changes.Transaction.t()],
  dep_index: non_neg_integer(),
  dep_move_kind: :move_in | :move_out,
  latest_seen_lsn: Electric.Postgres.Lsn.t() | nil,
  move_in_lsn: Electric.Postgres.Lsn.t() | nil,
  move_in_row_bytes: non_neg_integer() | nil,
  move_in_row_count: non_neg_integer() | nil,
  move_in_snapshot_name: String.t() | nil,
  snapshot: {term(), term(), [term()]} | nil,
  subquery_ref: [String.t()],
  values: [move_value()],
  views_after_move: Electric.Shapes.Consumer.Subqueries.Views.t(),
  views_before_move: Electric.Shapes.Consumer.Subqueries.Views.t()
}
```

# `buffer_txn`

```elixir
@spec buffer_txn(t(), Electric.Replication.Changes.Transaction.t()) :: t()
```

# `buffered_txn_count`

```elixir
@spec buffered_txn_count(t()) :: non_neg_integer()
```

# `carry_latest_seen_lsn`

```elixir
@spec carry_latest_seen_lsn(t(), Electric.Postgres.Lsn.t() | nil) :: t()
```

# `last_buffered_log_offset`

```elixir
@spec last_buffered_log_offset(t()) :: Electric.Replication.LogOffset.t() | nil
```

# `ready_to_splice?`

```elixir
@spec ready_to_splice?(t()) :: boolean()
```

# `record_query_complete!`

```elixir
@spec record_query_complete!(
  t(),
  String.t(),
  non_neg_integer(),
  non_neg_integer(),
  Electric.Postgres.Lsn.t()
) :: t()
```

# `record_seen_lsn`

```elixir
@spec record_seen_lsn(t(), Electric.Postgres.Lsn.t()) :: t()
```

# `record_snapshot!`

```elixir
@spec record_snapshot!(t(), {term(), term(), [term()]}) :: t()
```

# `split_buffer`

```elixir
@spec split_buffer(t()) ::
  {[Electric.Replication.Changes.Transaction.t()],
   [Electric.Replication.Changes.Transaction.t()]}
```

# `start`

```elixir
@spec start(
  Electric.Shapes.Consumer.Subqueries.Views.t(),
  non_neg_integer(),
  :move_in | :move_out,
  [String.t()],
  [move_value()]
) :: t()
```

---

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