main
// Public API of entities/chat — the 聊天室 domain: transport for every chat
// endpoint the workspace uses, the row shapes read straight off the generated
// envelopes, and the pure transcript maths (merge/dedupe/group/stamp) that both
// the main stream and the thread panels share.
// Consumers import from '@app/domains/chat/model', never from deeper files.
export * from './api'
export * from './chat'
export * from './meta'
export type {
VoiceConfigDto,
VoiceHand,
VoiceHandState,
VoiceHands,
VoiceLayoutTiles,
VoiceModeration,
VoiceParticipant,
VoiceSpaceStates,
VoiceTile,
VoiceTileWrite,
VoiceToken,
} from './voice-api'
export {
approveVoiceHand,
cancelVoiceHand,
denyVoiceHand,
getVoiceConfig,
getVoiceLayout,
getVoiceSpaceStates,
kickVoiceParticipant,
listVoiceHands,
listVoiceParticipants,
moderateVoiceMute,
raiseVoiceHand,
removeVoiceLayoutTiles,
requestVoiceToken,
revokeVoiceHand,
saveVoiceLayoutTiles,
} from './voice-api'