import { AdminAccountRecord, AdminReportRecord, AttachmentRecord, ChatRecord, ChatMessageRecord, EmojiRecord, FieldRecord, FilterRecord, FilterKeywordRecord, FilterStatusRecord, HistoryRecord, ListRecord, LocationRecord, MentionRecord, NotificationRecord, StatusEditRecord, StatusRecord, TagRecord, } from 'soapbox/normalizers'; import { Account as SchemaAccount } from 'soapbox/schemas'; import type { Record as ImmutableRecord } from 'immutable'; import type { LegacyMap } from 'soapbox/utils/legacy'; type AdminAccount = ReturnType; type AdminReport = ReturnType; type Attachment = ReturnType; type Chat = ReturnType; type ChatMessage = ReturnType; type Emoji = ReturnType; type Field = ReturnType; type Filter = ReturnType; type FilterKeyword = ReturnType; type FilterStatus = ReturnType; type History = ReturnType; type List = ReturnType; type Location = ReturnType; type Mention = ReturnType; type Notification = ReturnType; type StatusEdit = ReturnType; type Tag = ReturnType; type Account = SchemaAccount & LegacyMap; interface Status extends ReturnType { // HACK: same as above quote: EmbeddedEntity; reblog: EmbeddedEntity; } // Utility types type APIEntity = Record; type EmbeddedEntity = null | string | ReturnType>; export { Account, AdminAccount, AdminReport, Attachment, Chat, ChatMessage, Emoji, Field, Filter, FilterKeyword, FilterStatus, History, List, Location, Mention, Notification, Status, StatusEdit, Tag, // Utility types APIEntity, EmbeddedEntity, }; export type { Card, EmojiReaction, Group, GroupMember, GroupRelationship, Poll, PollOption, Relationship, } from 'soapbox/schemas';