/**
 * @mosaicstack/comms — MACP presence SDK (RFC-001 P1).
 *
 * Minimal, dev-validated slice: set Matrix presence, run the `mosaic.presence`
 * heartbeat, and compute deterministic fleet liveness. Enrollment, room
 * taxonomy, token minting and signed-authorship are explicitly out of P1.
 */

export { classifyLiveness, computeFleetLiveness } from './liveness.js';

export {
  HeartbeatEmitter,
  startHeartbeatLoop,
  type HeartbeatAgentIdentity,
  type HeartbeatEmitterOptions,
  type HeartbeatSender,
  type HeartbeatLoopOptions,
  type HeartbeatLoopHandle,
} from './heartbeat.js';

export {
  MinimalMatrixClient,
  MatrixError,
  toMatrixPresence,
  type MatrixClientConfig,
} from './matrix-client.js';

export { FleetLivenessReader, type FleetLivenessReaderOptions } from './liveness-reader.js';

export { PresenceAgent, type PresenceAgentOptions } from './presence-agent.js';

export {
  DEFAULT_LIVENESS_POLICY,
  MACP_VERSION,
  type AgentLiveness,
  type HeartbeatObservation,
  type LivenessPolicy,
  type MacpEnvelope,
  type MatrixPresence,
  type PresenceHeartbeatContent,
  type PresenceStatus,
} from './types.js';
