-record(state, { options :: spoke@core:options(), session :: spoke@core@internal@session:session(), connection :: spoke@core:connection_state(), pending_subs :: gleam@dict:dict(integer(), spoke@core:pending_subscription()), pending_unsubs :: gleam@dict:dict(integer(), spoke@core:pending_unsubscribe()), send_ping_timer :: gleam@option:option(drift@internal@timer:timer()), ping_resp_timer :: gleam@option:option(drift@internal@timer:timer()), connect_timer :: gleam@option:option(drift@internal@timer:timer()), update_listeners :: gleam@set:set(drift:effect(spoke@mqtt:update())), publish_completion_listeners :: gleam@dict:dict(drift:effect({ok, nil} | {error, spoke@mqtt:operation_error()}), drift@internal@timer:timer()) }).