import { MessageModel, MessageAttributes } from './messages'; interface ConversationAttributes { profileName?: string; id: string; name: string; members: Array; left: boolean; expireTimer: number; profileSharing: boolean; secondaryStatus: boolean; mentionedUs: boolean; unreadCount: number; isArchived: boolean; active_at: number; timestamp: number; // timestamp of what? groupAdmins?: Array; isKickedFromGroup?: boolean; avatarPath?: string; isMe?: boolean; } export interface ConversationModel extends Backbone.Model { idForLogging: () => string; // Save model changes to the database commit: () => Promise; notify: (message: MessageModel) => void; isSessionResetReceived: () => boolean; updateExpirationTimer: ( expireTimer: number | null, source: string, receivedAt: number, options: object ) => void; isPrivate: () => boolean; isVerified: () => boolean; toggleVerified: () => Promise; getProfile: (id: string) => Promise; getProfiles: () => Promise; setProfileKey: (key: string) => void; isMe: () => boolean; getRecipients: () => Array; getTitle: () => string; onReadMessage: (message: MessageModel) => void; updateTextInputState: () => void; getName: () => string; addMessage: (attributes: Partial) => Promise; isMediumGroup: () => boolean; lastMessage: string; messageCollection: Backbone.Collection; }