@type t() :: %Electric.Postgres.ReplicationClient.State{
connection_manager: pid(),
display_settings: [String.t()],
flush_up_to_date?: boolean(),
flushed_wal: non_neg_integer(),
last_seen_txn_lsn: Electric.Postgres.Lsn.t(),
last_seen_txn_timestamp: integer(),
lock_acquired?: term(),
pg_version: non_neg_integer(),
publication_name: String.t(),
publication_owner?: boolean(),
received_wal: non_neg_integer(),
recreate_slot?: boolean(),
relation_received: {module(), atom(), [term()]},
replication_idle_timeout: non_neg_integer(),
slot_name: String.t(),
slot_temporary?: boolean(),
stack_id: String.t(),
start_streaming?: boolean(),
step: Electric.Postgres.ReplicationClient.step(),
transaction_received: {module(), atom(), [term()]},
try_creating_publication?: boolean(),
txn_collector: Electric.Postgres.ReplicationClient.Collector.t()
}