export interface PostCreateConversationRequest { conversation_user_ids: string[]; } export interface PostCreateConversationResponse { conversation_id: string; } export interface PostMessageRequest { conversation_id: string; data: CreateTextMessageData | CreateVideoMessageData | CreateImageMessageData; } export interface PostGetDeletedMessagesRequest { messages_deleted_since_time?: string; conversation_id: string; } export interface PostDeletedMessagesResponse { deleted_message_ids: string[]; checked_at_time: string; } export interface PostMessageResponse { message_id: string; } export interface CreateTextMessageData { type: 'text'; text: string; } export interface CreateVideoMessageData { type: 'video'; video_url: string; } export interface CreateImageMessageData { type: 'image'; image_url: string; } export interface GetLatestMessageFromAllClientsResponse { conversations: { conversation_id: string; latest_message: Message; last_read_message_id?: string; }[]; } export interface PostGetMessagesRequest { conversation_id: string; less_than_index?: string; limit: number; } export interface PostGetMessagesResponse { messages: Message[]; last_read_message_id?: string; has_more: boolean; } export interface PostSetConversationReadAtRequest { conversation_id: string; last_read_message_id: string; } export interface Conversation { conversation_id: string; user_ids: string[]; } export type MessageType = 'text' | 'video' | 'image'; export interface MessageBase { id: string; sender_user_id: string; conversation_id: string; type: MessageType; created_at: string; } export interface TextMessage extends MessageBase { type: 'text'; text: string; } export interface VideoMessage extends MessageBase { type: 'video'; video_url: string; } export interface ImageMessage extends MessageBase { type: 'image'; image_url: string; } export type Message = TextMessage | VideoMessage | ImageMessage; export declare const isMessage: (message?: any) => message is Message; export interface NewMessageChatUpdate { type: 'new-message'; message: Message; } export interface MessageDeletedChatUpdate { type: 'message-deleted'; message_id: string; } export interface NewConversationChatUpdate { type: 'new-conversation'; conversation_id: string; conversation_users: string[]; } export type HevyChatUpdateMobilePushData = NewMessageChatUpdate | MessageDeletedChatUpdate | NewConversationChatUpdate; export declare const isHevyChatUpdatePush: (message?: any) => message is HevyChatUpdateMobilePushData;