1+ import sys
2+ from typing import Dict , List , Optional
3+
4+ if sys .version_info >= (3 , 8 ):
5+ from typing import TypedDict
6+ else :
7+ from typing_extensions import TypedDict
8+
9+
10+ class DeliveredMessageConfirmation (TypedDict ):
11+ """
12+ Confirmation of a delivered message.
13+
14+ Parameters:
15+ cid: Channel CID (channel_type:channel_id)
16+ id: Message ID
17+ """
18+ cid : str
19+ id : str
20+
21+
22+ class MarkDeliveredOptions (TypedDict , total = False ):
23+ """
24+ Options for marking messages as delivered.
25+
26+ Parameters:
27+ latest_delivered_messages: List of delivered message confirmations
28+ user: Optional user object
29+ user_id: Optional user ID
30+ """
31+ latest_delivered_messages : List [DeliveredMessageConfirmation ]
32+ user : Optional [Dict ] # UserResponse equivalent
33+ user_id : Optional [str ]
34+
35+
36+ class ChannelReadStatus (TypedDict , total = False ):
37+ """
38+ Channel read status information.
39+
40+ Parameters:
41+ last_read: Last read timestamp
42+ unread_messages: Number of unread messages
43+ user: User information
44+ first_unread_message_id: ID of first unread message
45+ last_read_message_id: ID of last read message
46+ last_delivered_at: Last delivered timestamp
47+ last_delivered_message_id: ID of last delivered message
48+ """
49+ last_read : str # ISO format string for timestamp
50+ unread_messages : int
51+ user : Dict # UserResponse equivalent
52+ first_unread_message_id : Optional [str ]
53+ last_read_message_id : Optional [str ]
54+ last_delivered_at : Optional [str ] # ISO format string for timestamp
55+ last_delivered_message_id : Optional [str ]
0 commit comments